{ "id": "168310", "key": "TIMOB-24800", "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": "19572", "description": "Important fixes for 6.1.0", "name": "Release 6.1.1", "archived": false, "released": true, "releaseDate": "2017-06-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-06-22T01:57:11.000+0000", "created": "2017-06-08T20:35:17.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "aar", "android", "hyperloop" ], "versions": [ { "id": "19101", "name": "Hyperloop 2.1.0", "archived": false, "released": true, "releaseDate": "2017-04-28" } ], "issuelinks": [], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-06-23T22:54:51.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": "While trying to run the same aar that was working fine with hyperloop 1.2.8, now using 2.1.0 it crashes showing the following error:\r\n\r\n\r\n{code}\r\n[ERROR] HyperloopProxy: (main) [1369699,1497486] Exception thrown during invocation of method: public void io.ridetap.RideTap.showRideTap(), args: []\r\n[ERROR] HyperloopProxy: java.lang.NoClassDefFoundError: Failed resolution of: Lio/ridetap/R$style;\r\n[ERROR] HyperloopProxy: \tat io.ridetap.internal.ui.cards.CardListDialog.(CardListDialog.java:74)\r\n[ERROR] HyperloopProxy: \tat io.ridetap.internal.ui.cards.RideTapCardDialog.(RideTapCardDialog.java:44)\r\n[ERROR] HyperloopProxy: \tat io.ridetap.RideTap.showRidesPager(RideTap.java:843)\r\n[ERROR] HyperloopProxy: \tat io.ridetap.RideTap.showRideTap(RideTap.java:213)\r\n[ERROR] HyperloopProxy: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] HyperloopProxy: \tat hyperloop.BaseProxy.invokeMethod(BaseProxy.java:145)\r\n[ERROR] HyperloopProxy: \tat hyperloop.InstanceProxy.invokeMethod(InstanceProxy.java:183)\r\n[ERROR] HyperloopProxy: \tat hyperloop.BaseProxy.callNativeFunction(BaseProxy.java:127)\r\n[ERROR] HyperloopProxy: \tat org.appcelerator.kroll.runtime.v8.V8Function.nativeInvoke(Native Method)\r\n[ERROR] HyperloopProxy: \tat org.appcelerator.kroll.runtime.v8.V8Function.callSync(V8Function.java:57)\r\n[ERROR] HyperloopProxy: \tat org.appcelerator.kroll.runtime.v8.V8Function.call(V8Function.java:43)\r\n[ERROR] HyperloopProxy: \tat hyperloop.HyperloopInvocationHandler.invoke(HyperloopInvocationHandler.java:58)\r\n[ERROR] HyperloopProxy: \tat java.lang.reflect.Proxy.invoke(Proxy.java:813)\r\n[ERROR] HyperloopProxy: \tat $Proxy6.run(Unknown Source)\r\n[ERROR] HyperloopProxy: \tat android.os.Handler.handleCallback(Handler.java:751)\r\n[ERROR] HyperloopProxy: \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\n[ERROR] HyperloopProxy: \tat android.os.Looper.loop(Looper.java:154)\r\n[ERROR] HyperloopProxy: \tat android.app.ActivityThread.main(ActivityThread.java:6119)\r\n[ERROR] HyperloopProxy: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] HyperloopProxy: \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)\r\n[ERROR] HyperloopProxy: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)\r\n[ERROR] HyperloopProxy: Caused by: java.lang.ClassNotFoundException: Didn't find class \"io.ridetap.R$style\" on path: DexPathList[[zip file \"/data/app/com.moovel.riderapp.via.shareddev-2/base.apk\"],nativeLibraryDirectories=[/data/app/com.moovel.riderapp.via.shareddev-2/lib/x86, /system/fake-libs, /data/app/com.moovel.riderapp.via.shareddev-2/base.apk!/lib/x86, /system/lib, /vendor/lib]]\r\n[ERROR] HyperloopProxy: \tat dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\r\n[ERROR] HyperloopProxy: \tat java.lang.ClassLoader.loadClass(ClassLoader.java:380)\r\n[ERROR] HyperloopProxy: \tat java.lang.ClassLoader.loadClass(ClassLoader.java:312)\r\n[ERROR] HyperloopProxy: \t... 21 more\r\n{code}\r\n\r\nInside of the aar, is included the asset that the error is trying to find, but when the apk is built, it can't find it in the internals of the apk.\r\n\r\nSame code works fine using hyperloop 1.2.8 and Titanium SDK 5.5.1, we are trying to upgrade everything to the latest version and we are blocked by this.", "attachment": [ { "id": "62702", "filename": "styles-debug.aar", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-20T12:11:40.000+0000", "size": 2932, "mimeType": "application/octet-stream" } ], "flagged": false, "summary": "Hyperloop: Android - aar not working in 2.1.0 anymore, it can't find R$style", "creator": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "subtasks": [], "reporter": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "environment": "Appc Ti SDK 6.1.0\r\nHyperloop 2.1.0", "closedSprints": [ { "id": 917, "state": "closed", "name": "2017 Sprint 13 SDK", "startDate": "2017-06-18T16:14:35.902Z", "endDate": "2017-07-02T16:14:00.000Z", "completeDate": "2017-07-06T23:53:22.101Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "421602", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hey there, did you also test with Hyperloop 2.1.1 already?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-09T09:34:18.000+0000", "updated": "2017-06-09T09:34:18.000+0000" }, { "id": "421859", "author": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "updateAuthor": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "created": "2017-06-13T13:14:47.000+0000", "updated": "2017-06-13T13:15:33.000+0000" }, { "id": "421860", "author": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "body": "Well this is weird, I'm having both issues, the one related to TIMOB-24275 and the one not finding {{R$style}}, tried with a new project only with the aar and the jars needed and I got the {{R$style}} error.", "updateAuthor": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "created": "2017-06-13T14:04:01.000+0000", "updated": "2017-06-13T14:04:01.000+0000" }, { "id": "422358", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~reymundolopez], it's hard to reproduce without any example code. Could you provide a minimal working example to reproduce the behavior you are seeing?\r\n\r\nI attached a small testing .aar which just reads out something from {{R.style}} and prints it to console. Can you check with that too? Just drop into your project as usual and use like this:\r\n{code}\r\nvar Activity = require('android.app.Activity');\r\nvar Test = require('com.example.styles.Test');\r\nTest.useRStyle(new Activity(Ti.Android.currentActivity));\r\n{code}\r\nIt should print the following log message: {{Obtained style attribute textColor from @style/CodeFont: ff00ff00}}. Also the package's R.java is being generated to {{build/android/gen/com/example/styles/R.java}}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-20T12:10:44.000+0000", "updated": "2017-06-20T13:31:05.000+0000" }, { "id": "422366", "author": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "body": "[~jvennemann] yes I will send the example to you appcelerator email account, since the aar is proprietary I can't share it to the world yet.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-20T13:26:46.000+0000", "updated": "2017-06-20T13:31:00.000+0000" }, { "id": "422467", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "This was caused by the Alloy and aar transform hooks being run in the wrong order. The aar transform hook only checks {{platform/android}} for .aar files. Alloy will copy the contents of {{app/platform/android}} there, so the order in which the hooks are executed is important because they both hook into {{build.pre.compile}}. I slightly lowered the aar transform hook priority to make sure it runs after Alloy and all .aar files are in the expected folder for the aar transform hook.\r\n\r\nPR (master): https://github.com/appcelerator/titanium_mobile/pull/9167\r\nPR (2_1_X): https://github.com/appcelerator/titanium_mobile/pull/9168", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-06-21T15:17:48.000+0000", "updated": "2017-06-21T15:17:48.000+0000" }, { "id": "422529", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Passed FR:\r\nNode Version: 6.10.3\r\nNPM Version: 3.10.10\r\nMac OS: 10.12.4\r\nAppc CLI: 6.2.2\r\nAppc CLI NPM: 4.2.9\r\nTitanium SDK version: local built with PR/9168\r\nAppcelerator Studio, build: 4.9.0.201705302345\r\nXcode 8.3.2\r\nHyperloop 2.1.1\r\n\r\nI followed the testing instructions per Jan's comments above and confirmed that the app builds and runs with no errors. Additionally, the expected message on the console was also seen. FR passed.", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-22T00:04:40.000+0000", "updated": "2017-06-22T00:04:40.000+0000" }, { "id": "422533", "author": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "body": "[~amukherjee] did you tried the example I provide to [~jvennemann]?, the example attached here is not a good example of the issue we are having, since is already working with previous versions of hyperloop/Ti SDK.", "updateAuthor": { "name": "reymundolopez", "key": "reymundolopez", "displayName": "Reymundo López", "active": true, "timeZone": "America/Mexico_City" }, "created": "2017-06-22T03:07:52.000+0000", "updated": "2017-06-22T03:07:52.000+0000" }, { "id": "422543", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~reymundolopez] I just contacted [~jvennemann] and got your example from him. I don't have a setup at home, so I'll test it when I get into the office later this morning. ", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-22T09:34:34.000+0000", "updated": "2017-06-22T09:34:34.000+0000" }, { "id": "422695", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Changes were verified to be in:\r\n6.1.1.v20170622183547\r\n6.2.0.v20170622105148", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-23T22:54:44.000+0000", "updated": "2017-06-23T22:54:44.000+0000" } ], "maxResults": 11, "total": 11, "startAt": 0 } } }