Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-24176

Hyperloop: Android - JNI libs should be included in APK

    Details

    • Story Points:
      5
    • Sprint:
      2016 Sprint 25 SDK

      Description

      Some Android libs use the Java Native interface (JNI). I've noticed that Hyperloop doesn't copy these external libs to the final APK. They're usually located inside .AAR's lib folder.

      Take GoogleVR SDK, for example.

      You can see that these libs are inside the build folder. All good!
      Problem is, they're not copied to the final APK:

      I can provide an example project via e-mail.
      This exception will be thrown:

      [ERROR] HyperloopProxy: (main) [366,366] Exception during instantiation of class 'com.google.vr.sdk.widgets.pano.VrPanoramaView'
      [ERROR] HyperloopProxy: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.loopmodules.googlevr-1/base.apk"],nativeLibraryDirectories=[/data/app/com.loopmodules.googlevr-1/lib/arm, /data/app/com.loopmodules.googlevr-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn't find "libpanorenderer.so"
      [ERROR] HyperloopProxy: 	at java.lang.Runtime.loadLibrary(Runtime.java:379)
      [ERROR] HyperloopProxy: 	at java.lang.System.loadLibrary(System.java:1086)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.pano.VrPanoramaRenderer.<init>(VrPanoramaRenderer.java:28)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.pano.VrPanoramaView.createRenderer(VrPanoramaView.java:101)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.pano.VrPanoramaView.createRenderer(VrPanoramaView.java:14)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.common.VrWidgetView.initializeRenderingView(VrWidgetView.java:323)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.common.VrWidgetView.init(VrWidgetView.java:232)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.common.VrWidgetView.<init>(VrWidgetView.java:185)
      [ERROR] HyperloopProxy: 	at com.google.vr.sdk.widgets.pano.VrPanoramaView.<init>(VrPanoramaView.java:94)
      [ERROR] HyperloopProxy: 	at java.lang.reflect.Constructor.newInstance(Native Method)
      [ERROR] HyperloopProxy: 	at hyperloop.ClassProxy.newInstance(ClassProxy.java:89)
      [ERROR] HyperloopProxy: 	at org.appcelerator.kroll.runtime.v8.V8Runtime.nativeRunModule(Native Method)
      [ERROR] HyperloopProxy: 	at org.appcelerator.kroll.runtime.v8.V8Runtime.doRunModule(V8Runtime.java:189)
      [ERROR] HyperloopProxy: 	at org.appcelerator.kroll.KrollRuntime.runModule(KrollRuntime.java:241)
      [ERROR] HyperloopProxy: 	at org.appcelerator.titanium.TiLaunchActivity.loadActivityScript(TiLaunchActivity.java:102)
      [ERROR] HyperloopProxy: 	at org.appcelerator.titanium.TiLaunchActivity.windowCreated(TiLaunchActivity.java:150)
      [ERROR] HyperloopProxy: 	at org.appcelerator.titanium.TiRootActivity.windowCreated(TiRootActivity.java:107)
      [ERROR] HyperloopProxy: 	at org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:673)
      [ERROR] HyperloopProxy: 	at org.appcelerator.titanium.TiLaunchActivity.onCreate(TiLaunchActivity.java:143)
      [ERROR] HyperloopProxy: 	at org.appcelerator.titanium.TiRootActivity.onCreate(TiRootActivity.java:96)
      [ERROR] HyperloopProxy: 	at android.app.Activity.performCreate(Activity.java:6372)
      [ERROR] HyperloopProxy: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
      [ERROR] HyperloopProxy: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2432)
      [ERROR] HyperloopProxy: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539)
      [ERROR] HyperloopProxy: 	at android.app.ActivityThread.access$900(ActivityThread.java:168)
      [ERROR] HyperloopProxy: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378)
      [ERROR] HyperloopProxy: 	at android.os.Handler.dispatchMessage(Handler.java:102)
      [ERROR] HyperloopProxy: 	at android.os.Looper.loop(Looper.java:150)
      [ERROR] HyperloopProxy: 	at android.app.ActivityThread.main(ActivityThread.java:5665)
      [ERROR] HyperloopProxy: 	at java.lang.reflect.Method.invoke(Native Method)
      [ERROR] HyperloopProxy: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
      [ERROR] HyperloopProxy: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                gmathews Gary Mathews
                Reporter:
                rdperottoni Rodolfo Perottoni
                Reviewer:
                Hans Knöchel
                Tester:
                Josh Longton
              • Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Backbone Issue Sync

                  • Titanium SDK/CLI <> Titanium Mobile
                    Synced with:
                    TIMOB-10304
                    Sync status:
                    ERROR
                    Last received:
                    Last sent:

                    Git Source Code