{ "id": "165186", "key": "TIMOB-24275", "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": "18246", "name": "Hyperloop 2.0.1", "archived": false, "released": true, "releaseDate": "2017-03-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-03-09T12:59:43.000+0000", "created": "2017-01-04T23:10:55.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "hyperloop", "qe-hyperloop", "regression" ], "versions": [ { "id": "18247", "name": "Hyperloop 2.0.0", "archived": false, "released": true, "releaseDate": "2016-10-18" } ], "issuelinks": [ { "id": "54515", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "162189", "key": "TIMOB-23697", "fields": { "summary": "Hyperloop - Android - Dexer fails because of duplicated classes", "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" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "updated": "2017-03-17T21:38:22.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": "Same aar is not working in hyperloop 2.0.0 while is working fine in 1.2.8.\r\n\r\nI have added an aar and setup everything like I did in my native app, this is how the hyperloop file looks like:\r\n\r\n{code:javascript}\r\nvar Configuration = require('io.ridetap.Configuration');\r\n\r\nvar builder = new Configuration.Builder();\r\n{code}\r\n\r\nUsing hyperloop 1.2.8, the code above works without any problem, but starting in hyperloop 2.0.0 it crash saying {{Class 'io.ridetap.Configuration$Builder' not found}}.\r\n\r\nThe only differences I see in the generated files for each class is that the path is different:\r\n\r\nIn hyperloop 1.2.8 the call is this: {{var parentPackage = require('io.ridetap');}} while in hyperloop 2.0.0 is this {{var parentPackage = require('./io.ridetap');}}\r\n\r\nThe full log of the error is this:\r\n\r\n{code}\r\nERROR] HyperloopUtil: (main) [5188,5188] Class 'io.ridetap.Configuration$Builder' not found\r\n[ERROR] HyperloopUtil: java.lang.ClassNotFoundException: io.ridetap.Configuration$Builder\r\n[ERROR] HyperloopUtil: \tat java.lang.Class.classForName(Native Method)\r\n[ERROR] HyperloopUtil: \tat java.lang.Class.forName(Class.java:400)\r\n[ERROR] HyperloopUtil: \tat java.lang.Class.forName(Class.java:326)\r\n[ERROR] HyperloopUtil: \tat hyperloop.HyperloopModule.getJavaClass(HyperloopModule.java:247)\r\n[ERROR] HyperloopUtil: \tat hyperloop.ProxyFactory.newClass(ProxyFactory.java:81)\r\n[ERROR] HyperloopUtil: \tat hyperloop.HyperloopModule.getClass(HyperloopModule.java:137)\r\n[ERROR] HyperloopUtil: \tat org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)\r\n[ERROR] HyperloopUtil: \tat org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:62)\r\n[ERROR] HyperloopUtil: \tat org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:872)\r\n[ERROR] HyperloopUtil: \tat org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1095)\r\n[ERROR] HyperloopUtil: \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:354)\r\n[ERROR] HyperloopUtil: \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n[ERROR] HyperloopUtil: \tat android.os.Looper.loop(Looper.java:154)\r\n[ERROR] HyperloopUtil: \tat android.app.ActivityThread.main(ActivityThread.java:6119)\r\n[ERROR] HyperloopUtil: \tat java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] HyperloopUtil: \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)\r\n[ERROR] HyperloopUtil: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)\r\n[ERROR] HyperloopUtil: Caused by: java.lang.ClassNotFoundException: Didn't find class \"io.ridetap.Configuration$Builder\" on path: DexPathList[[zip file \"/data/app/com.unosquare.p.moovel.rideTapTest-2/base.apk\"],nativeLibraryDirectories=[/data/app/com.unosquare.p.moovel.rideTapTest-2/lib/x86, /system/fake-libs, /data/app/com.unosquare.p.moovel.rideTapTest-2/base.apk!/lib/x86, /system/lib, /vendor/lib]]\r\n[ERROR] HyperloopUtil: \tat dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)\r\n[ERROR] HyperloopUtil: \tat java.lang.ClassLoader.loadClass(ClassLoader.java:380)\r\n[ERROR] HyperloopUtil: \tat java.lang.ClassLoader.loadClass(ClassLoader.java:312)\r\n[ERROR] HyperloopUtil: \t... 17 more\r\n[ERROR] TiExceptionHandler: (main) [11,5199] ----- Titanium Javascript Runtime Error -----\r\n[ERROR] TiExceptionHandler: (main) [0,5199] - In /hyperloop/io.ridetap.Configuration$Builder.js:1,373\r\n[ERROR] TiExceptionHandler: (main) [0,5199] - Message: Uncaught TypeError: Cannot read property 'newInstance' of null\r\n[ERROR] TiExceptionHandler: (main) [0,5199] - Source: (function (exports, require, module, __filename, __dirname, Titanium, Ti, global, kroll) {var Hyperloop=require(\"hyperloop\"),EnclosingClass=require(\"./io.ridetap.Configuration\"),Builder=function(){var e;e=1==arguments.length&&arguments[0].isNativeProxy&&arguments[0].isInstanceProxy&&arguments[0].isInstanceOf(\"io.ridetap.Configuration$Builder\")?arguments[0]:Builder.class.newInstance(arguments),this.$native=e,this._hasPointer=null!=e,this._private={}},SuperClass=require(\"./java.lang.Object\");Builder.prototype=Object.create(SuperClass.prototype),Builder.prototype.constructor=Builder,Object.defineProperty(Builder.prototype,\"super\",{get:function(){return this._hasPointer?new Builder(this.$native.super):null},enumerable:!0}),Builder.className=\"io.ridetap.Configuration$Builder\",Builder.prototype.className=\"io.ridetap.Configuration$Builder\",Object.defineProperty(Builder,\"class\",{get:function(){return Hyperloop.getClass(\"io.ridetap.Configuration$Builder\")},enumerable:!0,configurable:!1}),Builder.extend=function(e){var t=Hyperloop.extend(\"io.ridetap.Configuration$Builder\"),n=function(){function n(e){if(e.apiName&&e.isNativeProxy&&e.isInstanceProxy){var t=require(\"./\"+e.apiName);return new t(e)}return e}function r(){for(var e=[],t=0;t