{ "id": "171454", "key": "TIMOB-25930", "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": [], "resolution": null, "resolutiondate": null, "created": "2018-04-04T15:58:45.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "19957", "description": "", "name": "Release 7.1.0", "archived": false, "released": true, "releaseDate": "2018-03-14" } ], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-04-12T06:35:54.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "Android app keeps crashing for many users using the app created by [~zettageek] as contractor.\r\n\r\n{code}\r\njava.lang.RuntimeException: \r\n at android.app.ActivityThread.handleReceiver (ActivityThread.java:3290)\r\n at android.app.ActivityThread.-wrap20 (ActivityThread.java)\r\n at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1715)\r\n at android.os.Handler.dispatchMessage (Handler.java:102)\r\n at android.os.Looper.loop (Looper.java:154)\r\n at android.app.ActivityThread.main (ActivityThread.java:6682)\r\n at java.lang.reflect.Method.invoke (Native Method)\r\n at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1520)\r\n at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)\r\nCaused by: java.lang.ClassNotFoundException: \r\n at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)\r\n at java.lang.ClassLoader.loadClass (ClassLoader.java:380)\r\n at java.lang.ClassLoader.loadClass (ClassLoader.java:312)\r\n at android.app.ActivityThread.handleReceiver (ActivityThread.java:3285)\r\n{code}\r\n\r\n\r\n{code}\r\nSDK Version: 7.1.0.GA\r\nAndroid Target SDK Version: 26\r\nHyperloop Enabled: YES (we use the Localytics-Hyperloop library on Github)\r\nFacebook SDK In User: YES\r\nPush Notifications: YES (Via Plot Projects)\r\nAttached to Axway Platform: YES\r\nAlloy Framework In Use: YES\r\nAndroid Permissions In Use:\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n{code}\r\n\r\n*Further information:*\r\n\r\nWe also use GCM receivers.\r\nAppCompat as base Android theme.\r\nrun-on-main-thread is TRUE.\r\nas is intent-filter-new-task = TRUE", "attachment": [ { "id": "65022", "filename": "AndroidManifest.xml", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-04T21:22:19.000+0000", "size": 7430, "mimeType": "text/xml" }, { "id": "65023", "filename": "main-dex-classes.txt", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-04T21:22:19.000+0000", "size": 41219, "mimeType": "text/plain" } ], "flagged": false, "summary": "Android: Crashing with runtime exception", "creator": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Android, Hyperloop Enabled, TiSDK 7.1.0.GA, Target SDK 26", "comment": { "comments": [ { "id": "436293", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "It looks like the system is failing to find a {{BroadcastReceiver}} Java class for a broadcasted intent.\r\n\r\nQuestions:\r\n# Are there any other broadcast receivers other than GCM (push notifications) set up in the app? (Ex: activity intent-filters, facebook deep-linking, etc.)\r\n# Is the app multidex'ed? (After doing a build, check the {{build/android/bin/dexfiles}} folder for multiple dex files.)\r\n# Do you have info regarding which Android OS versions this tends to happen on? We're looking for trends such as Android 4.x only or Android 8.x only.\r\n\r\nThanks.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-04T18:05:14.000+0000", "updated": "2018-04-04T18:05:14.000+0000" }, { "id": "436600", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~zettageek] I received a crash after turning on my phone, Android 7.1.1:\r\n{code:xml}\r\nE/TiApplication: (main) [8,3408] Sending event: exception on thread: main msg:java.lang.RuntimeException: Unable to instantiate receiver com.localytics.gcm.GCMBroadcastReceiver: java.lang.ClassNotFoundException: Didn't find class \"com.localytics.gcm.GCMBroadcastReceiver\" on path: DexPathList[[zip file \"/data/app/com.redacted.app-1/base.apk\"],nativeLibraryDirectories=[/data/app/com.redacted.app-1/lib/arm64, /data/app/com.redacted.app-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]; Titanium 7.1.0,2018/03/14 13:40,undefined\r\n java.lang.RuntimeException: Unable to instantiate receiver com.localytics.gcm.GCMBroadcastReceiver: java.lang.ClassNotFoundException: Didn't find class \"com.localytics.gcm.GCMBroadcastReceiver\" on path: DexPathList[[zip file \"/data/app/com.redacted.app-1/base.apk\"],nativeLibraryDirectories=[/data/app/com.redacted.app-1/lib/arm64, /data/app/com.redacted.app-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]\r\n at android.app.ActivityThread.handleReceiver(ActivityThread.java:3046)\r\n at android.app.ActivityThread.-wrap18(ActivityThread.java)\r\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1580)\r\n at android.os.Handler.dispatchMessage(Handler.java:102)\r\n at android.os.Looper.loop(Looper.java:154)\r\n at android.app.ActivityThread.main(ActivityThread.java:6186)\r\n at java.lang.reflect.Method.invoke(Native Method)\r\n at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)\r\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)\r\n Caused by: java.lang.ClassNotFoundException: Didn't find class \"com.localytics.gcm.GCMBroadcastReceiver\" on path: DexPathList[[zip file \"/data/app/com.redacted.app-1/base.apk\"],nativeLibraryDirectories=[/data/app/com.redacted.app-1/lib/arm64, /data/app/com.redacted.app-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]\r\n at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\r\n at java.lang.ClassLoader.loadClass(ClassLoader.java:380)\r\n at java.lang.ClassLoader.loadClass(ClassLoader.java:312)\r\n at android.app.ActivityThread.handleReceiver(ActivityThread.java:3041)\r\n at android.app.ActivityThread.-wrap18(ActivityThread.java) \r\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1580) \r\n at android.os.Handler.dispatchMessage(Handler.java:102) \r\n at android.os.Looper.loop(Looper.java:154) \r\n at android.app.ActivityThread.main(ActivityThread.java:6186) \r\n at java.lang.reflect.Method.invoke(Native Method) \r\n at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) \r\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)\r\n{code}\r\n\r\nYour {{localytics}} broadcast receiver does not exist. After taking a look at the {{localytics}} module I found the correct class to use:\r\n{code:xml}\r\n\r\n\r\n\r\n\r\n\r\n{code}", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-06T23:54:54.000+0000", "updated": "2018-04-07T00:24:21.000+0000" }, { "id": "436601", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Note that you can reproduce this issue by rebooting your phone. This is because the BroadcastReceiver mentioned by Gary is set up to be invoked when the phone has been booted-up.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-07T00:51:41.000+0000", "updated": "2018-04-07T00:51:41.000+0000" }, { "id": "436815", "author": { "name": "zettageek", "key": "zettageek", "displayName": "Josh Lambert", "active": true, "timeZone": "America/Chicago" }, "body": "Hey guys! We're unable to reproduce this on our end still, even after a reboot. Is there anything special we should do besides rebooting the device?", "updateAuthor": { "name": "zettageek", "key": "zettageek", "displayName": "Josh Lambert", "active": true, "timeZone": "America/Chicago" }, "created": "2018-04-11T22:23:17.000+0000", "updated": "2018-04-11T22:23:17.000+0000" }, { "id": "436817", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~zettageek], that would suggest some other BroadcastReceiver is configured wrong in the \"AndroidManifest.xml\" file. One that's not set up to listen for a \"android.intent.action.BOOT_COMPLETED\" intent.\r\n\r\nIs the \"AndroidManifest.xml\" file attached to this ticket yours? Each {{}} XML element's name attribute references a Java class that the OS will attempt to instantiate via Java reflection. It's the fully qualified Java class name, which includes the package name (aka: namespace). I suspect one of the receiver names are wrong, has a typo, or has been renamed within a module. Meaning, to double check, a matching Java class needs to be found for each receiver name. Odds are there is a mismatch with one of the modules you're using.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-12T00:18:30.000+0000", "updated": "2018-04-12T00:18:30.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }