{ "id": "172412", "key": "MOD-2476", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10034", "key": "MOD", "name": "Appcelerator Modules", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2018-10-09T09:29:02.000+0000", "priority": null, "labels": [], "versions": [], "issuelinks": [], "assignee": null, "updated": "2018-12-04T23:51:47.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": "14521", "name": "Facebook" } ], "description": "Facebook SDK depends on org.apache.commons.codec and other apache stuff.\r\n\r\n{code}\r\n10-08 18:08:13.142: E/AndroidRuntime(9016): java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/codec/BinaryEncoder;\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at org.apache.commons.codec.digest.DigestUtils.shaHex(DigestUtils.java:150)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at org.appcelerator.titanium.util.TiResponseCache.get(TiResponseCache.java:327)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.CacheAdapter.getJavaCachedResponse(CacheAdapter.java:103)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.CacheAdapter.get(CacheAdapter.java:47)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:207)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:461)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:407)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:538)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:26)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphResponse.fromHttpConnection(GraphResponse.java:258)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphRequest.executeConnectionAndWait(GraphRequest.java:1267)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphRequest.executeBatchAndWait(GraphRequest.java:1165)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphRequest.executeBatchAndWait(GraphRequest.java:1131)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphRequest.executeBatchAndWait(GraphRequest.java:1115)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphRequest.executeAndWait(GraphRequest.java:1090)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.GraphRequest.executeAndWait(GraphRequest.java:984)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.internal.FetchedAppSettingsManager.getAppSettingsQueryResponse(FetchedAppSettingsManager.java:363)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.internal.FetchedAppSettingsManager.access$100(FetchedAppSettingsManager.java:60)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at com.facebook.internal.FetchedAppSettingsManager$1.run(FetchedAppSettingsManager.java:174)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)\r\n10-08 18:08:13.142: E/AndroidRuntime(9016):     at java.lang.Thread.run(Thread.java:764)\r\n{code}", "attachment": [], "flagged": false, "summary": "Facebook module crashes on Android Pie", "creator": { "name": "buddyguards", "key": "buddyguards", "displayName": "grebulon", "active": true, "timeZone": "Asia/Jerusalem" }, "subtasks": [], "reporter": { "name": "buddyguards", "key": "buddyguards", "displayName": "grebulon", "active": true, "timeZone": "Asia/Jerusalem" }, "environment": "Android Pie w/ ti.facebook", "comment": { "comments": [ { "id": "442456", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This error will only happen if your app \"targets\" API Level 28 (aka: Android P), which Titanium does *not* support yet. Please see [link|https://docs.appcelerator.com/platform/latest/#!/guide/Titanium_Compatibility_Matrix-section-src-29004837_safe-id-VGl0YW5pdW1Db21wYXRpYmlsaXR5TWF0cml4LUFuZHJvaWRTREsvVGFyZ2V0QW5kcm9pZHBsYXRmb3Jt].\r\n\r\nTitanium apps which target API Level 27 (the default for Titanium 7.3.0-7.4.1) are backward compatible on Android P and run fine. I recommend that you *+remove+* the following from your \"tiapp.xml\"...\r\n{code:xml}\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-10-09T17:37:37.000+0000", "updated": "2018-10-09T17:37:37.000+0000" }, { "id": "442592", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello [~buddyguards], Did you follow Joshua's guide. Is the issue still there after targeting API level 27 instead of 28? Let us know. Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2018-10-14T22:10:20.000+0000", "updated": "2018-10-14T22:10:20.000+0000" }, { "id": "442608", "author": { "name": "buddyguards", "key": "buddyguards", "displayName": "grebulon", "active": true, "timeZone": "Asia/Jerusalem" }, "body": "I need to target 28. I added the apache libraries to the module to work around this.", "updateAuthor": { "name": "buddyguards", "key": "buddyguards", "displayName": "grebulon", "active": true, "timeZone": "Asia/Jerusalem" }, "created": "2018-10-15T12:00:17.000+0000", "updated": "2018-10-15T12:00:17.000+0000" }, { "id": "442618", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "You're free to target API Level 28 at your own risk, but just note that doing so introduces breaking changes.\r\nhttps://developer.android.com/about/versions/pie/android-9.0-changes-all\r\n\r\nWhat you got burned by is Google's removal of some Apache libraries. This doesn't just impact HTTP communications. It impacts MD5/SHA hashing functions too.\r\nhttps://developer.android.com/about/versions/pie/android-9.0-changes-all#apache-nonp\r\n\r\nWe plan on supporting targeting API Level 28 in Titanium 7.5.0. This involves resolving the following Android P breaking-changes listed below. Personally, I don't recommend that you don't target API Level 28 yet, but if you have to, then you'll have to be concerned with the below..\r\n* [TIMOB-26377]\r\n* [TIMOB-26297]\r\n* [TIMOB-26376]\r\n* [TIMOB-26260]\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-10-15T17:36:32.000+0000", "updated": "2018-10-15T17:36:32.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }