{ "id": "172858", "key": "TIMOB-26727", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-01-16T16:21:07.000+0000", "created": "2019-01-15T00:18:32.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "20238", "description": "", "name": "Release 7.5.0", "archived": false, "released": true, "releaseDate": "2018-11-15" }, { "id": "20429", "name": "Release 7.5.1", "archived": false, "released": true, "releaseDate": "2019-02-26" } ], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-01-18T23:08:39.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "13715", "name": "Hyperloop", "description": "Hyperloop project" } ], "description": "h5.Steps to reproduce:\r\n1. Create a default app having hyperloop 4.0.0.\r\n2. Build for Android device/emulator.\r\n\r\nh5.Actual result:\r\n1. App is stuck at splash at launch & we do see this error in logcat:\r\n{code}\r\n01-14 15:55:32.437 2950 2950 D AndroidRuntime: Shutting down VM\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: FATAL EXCEPTION: main\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: Process: com.app.timob26719, PID: 2950\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol \"_ZN8titanium11TiViewProxy16getProxyTemplateEN2v85LocalINS1_7ContextEEE\" referenced by \"/data/app/com.app.timob26719-MEEWudT-8rk457q_wUWhzg==/lib/arm64/libhyperloop.so\"...\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat java.lang.Runtime.loadLibrary0(Runtime.java:1016)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat java.lang.System.loadLibrary(System.java:1669)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:139)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:113)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:207)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:113)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat org.appcelerator.kroll.KrollRuntime.init(KrollRuntime.java:135)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat com.app.timob26719.Timob26719Application.onCreate(Timob26719Application.java:95)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.app.ActivityThread.access$1100(ActivityThread.java:199)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.os.Handler.dispatchMessage(Handler.java:106)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.os.Looper.loop(Looper.java:193)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat android.app.ActivityThread.main(ActivityThread.java:6669)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat java.lang.reflect.Method.invoke(Native Method)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)\r\n01-14 15:55:32.437 2950 2950 E AndroidRuntime: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)\r\n{code}\r\n\r\nh5.Expected result:\r\n1. App should not be stuck on the splash screen & should launch fine.", "attachment": [], "flagged": false, "summary": "Hyperloop: Android app using hyperloop 4.0.0 hangs on splash when built with 7.5.0.GA & latest 7.5.1 ", "creator": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Hyperloop: 4.0.0\r\n\r\nStudio Ver: 5.1.1.201809051655\r\nSDK Ver: 7.5.0.GA\r\nOS Ver: 10.14\r\nXcode Ver: Xcode 10.1\r\nAppc NPM: 4.2.13\r\nAppc CLI: 7.0.9\r\nDaemon Ver: 1.1.3\r\nTi CLI Ver: 5.1.1\r\nAlloy Ver: 1.13.4\r\nNode Ver: 8.9.1\r\nNPM Ver: 5.5.1\r\nJava Ver: 10.0.2\r\nDevices: ⇨ google Pixel (Android 9)\r\n", "closedSprints": [ { "id": 1108, "state": "closed", "name": "2019 Sprint 2", "startDate": "2019-01-14T17:20:19.067Z", "endDate": "2019-01-26T17:20:00.000Z", "completeDate": "2019-01-28T17:38:11.580Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "445299", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I also do see this error below when I try to run IOS app using SDK 7.5.0.GA.\r\n{code}\r\n[ERROR] : You cannot use the Hyperloop compiler with a version of Titanium older than 8.0.0\r\n[ERROR] : Set the value of to a newer version in tiapp.xml.\r\n[ERROR] : For example:\r\n[ERROR] : \t8.0.0.GA\r\n{code}\r\n\r\nIf hyperloop 4.0.0 is not supposed to be used with SDK below 8.0.0 then I guess we should update the module manifest so that the right module version is enabled when SDK below 8.0.0 is used.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-15T00:27:14.000+0000", "updated": "2019-01-15T00:27:14.000+0000" }, { "id": "445359", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Nope, this should not be a breaking change. Modules should be backwards compatible. I believe this is due to the Hyperloop module being built with an SDK prior to the changes here https://github.com/appcelerator/titanium_mobile/commit/1234b7447d431343696910974fc1175f272c05f2#diff-6f5d533396b30acbdea39dee3f511ab7", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-15T19:03:38.000+0000", "updated": "2019-01-15T19:03:38.000+0000" }, { "id": "445367", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~gmathews], i built the modules with the latest available build from 8_0_X which is 8.0.0.v20190114160512. Removing the module from the app or setting the SDK back to 8.0.0 will make it work normally again.\r\n\r\n[~jquick], i don't get any exception at all. The logs look like this:\r\n{code}\r\n-- Start application log -----------------------------------------------------\r\n[INFO] Project built successfully in 56s 845ms\r\n\r\n[WARN] zygote: Unexpected CPU variant for X86 using defaults: x86_64\r\n[INFO] TiApplication: (main) [0,0] checkpoint, app created.\r\n[INFO] zygote: Background concurrent copying GC freed 12177(2MB) AllocSpace objects, 4(240KB) LOS objects, 50% free, 5MB/11MB, paused 3.074ms total 492.503ms\r\n[INFO] MultiDex: VM with version 2.1.0 has multidex support\r\n[INFO] MultiDex: Installing application\r\n[INFO] MultiDex: VM has multidex support, MultiDex support library is disabled.\r\n[DEBUG] APSAnalytics: APSAnalytics initialization started...\r\n[DEBUG] AndroidRuntime: Shutting down VM\r\n{code}\r\n\r\n*Steps to reproduce*\r\n# Build module with SDK 8.0.0.v20190114160512, e.g. [ti.identitiy|https://github.com/appcelerator-modules/titanium-identity]\r\n# Add that module to a test project. Make sure the selected SDK version for the app project is set to 7.5.0.GA\r\n# Add the following test case\r\n{code}\r\nconst win = Ti.UI.createWindow({ layout: 'vertical' });\r\nconst label = Ti.UI.createLabel({ text: 'Now you see me' });\r\nwin.add(label);\r\nwin.open();\r\n{code}\r\n# Run the app on Android simulator or device\r\n\r\n*Actual behavior*\r\nThe app hangs on splash screen. No exception is thrown, the only indicator that something went wrong is a log message with {{[DEBUG] AndroidRuntime: Shutting down VM}}.\r\n\r\n*Expected behavior*\r\nApp starts and a simple window with a label \"No you see me\" is shown.\r\n\r\n", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-01-15T21:03:50.000+0000", "updated": "2019-01-15T21:05:10.000+0000" }, { "id": "445369", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The following logged message is interesting...\r\n{code}\r\n[WARN] zygote: Unexpected CPU variant for X86 using defaults: x86_64\r\n{code}\r\n\r\nSounds like an x86 architecture issue. Like your module might be missing an x86 .so for the module.\r\n\r\nIf you unzip your APK file (ie: change the {{.apk}} extension to {{.zip}} and then unzip it), then you can find all of the {{.so}} libraries under the unzipped APK's \"lib\" folder. You should have a matching {{.so}} library under every architecture subfolder such as \"x86\" and \"armeabi-v7a\". If there is a different amount of libraries under the subfolders, then that's the problem.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-15T22:12:40.000+0000", "updated": "2019-01-15T22:15:25.000+0000" }, { "id": "445370", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Oh never mind. I'm able to reproduce this using the current 2.1.1 pre-release of the module on 7.5.0.\r\n\r\nThe issue is that a 8.0.0 compiled modules will implicitly link to its version of V8's C++ classes. And we have V8 wrapper interfaces in 8.0.0 to make 7.0.0 built module backward compatible on 8.0.0. So, for this particular case, we have a \"forward\" compatibility issue. The 8.0.0 built module is trying to link to V8 C++ classes that don't exist with 7.0.0's version of V8. There really is no easy solution to this problem in C++. It can be easily done with C APIs, but not with C++ other than to make separate {{.so}} files. Which means the simple solution is to have 8.0.0 built modules have a min Titanium version so that they can't be used by older versions of Titanium.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-15T22:33:40.000+0000", "updated": "2019-01-15T22:37:39.000+0000" }, { "id": "445371", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We just needed to update the templates to not use the the new method signatures but continue to use the old ones for compatibility.\r\n\r\nmaster: https://github.com/appcelerator/titanium_mobile/pull/10619\r\n8_0_X: https://github.com/appcelerator/titanium_mobile/pull/10618\r\n\r\nWe will need to recompile our modules with the new build.", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-16T01:09:05.000+0000", "updated": "2019-01-16T01:09:05.000+0000" }, { "id": "445397", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Just to confirm - even though these PRs are merged, presumably we need a Hyperloop 4.0.1 build against the latest 8_0_X build and include that in the SDK in another PR? cc [~jvennemann]", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2019-01-16T16:42:59.000+0000", "updated": "2019-01-16T16:42:59.000+0000" }, { "id": "445483", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix with SDK 8.0.0.v20190117115226 & hyperloop 4.0.1.\r\nClosing.\r\n\r\nStudio Ver: 5.1.2.201812191831\r\nSDK Ver: 8.0.0.v20190117115226\r\nOS Ver: 10.14\r\nXcode Ver: Xcode 10.1\r\nAppc NPM: 4.2.13\r\nAppc CLI: 7.0.10-master.5\r\nDaemon Ver: 1.1.3\r\nTi CLI Ver: 5.1.1\r\nAlloy Ver: 1.13.7\r\nNode Ver: 8.9.1\r\nNPM Ver: 5.5.1\r\nJava Ver: 10.0.2\r\n", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-01-18T23:08:35.000+0000", "updated": "2019-01-18T23:08:35.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }