Search Unity

Quest build crashes on startup

Discussion in 'Android' started by wirelessdreamer, Jun 4, 2019.

  1. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    134
    I have my app working on windows builds, but on android builds it crashes on startup.

    I'm a bit green with android build issue troubleshooting. Any ideas? I've built and pushed some other test apps that worked fine. I'm using all the unity included android build tools. Unity version is 2019.1.1f1

    here are the errors output from logcat:

    2019-06-04 14:56:55.927 3610-3610/com.VRPatients.VRPatients E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.VRPatients.VRPatients, PID: 3610
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.VRPatients.VRPatients/com.unity3d.player.UnityPlayerActivity}: java.lang.ClassNotFoundException: Didn't find class "com.unity3d.player.UnityPlayerActivity" on path: DexPathList[[zip file "/data/app/com.VRPatients.VRPatients-1/base.apk"],nativeLibraryDirectories=[/data/app/com.VRPatients.VRPatients-1/lib/arm, /data/app/com.VRPatients.VRPatients-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2581)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2740)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6144)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.unity3d.player.UnityPlayerActivity" on path: DexPathList[[zip file "/data/app/com.VRPatients.VRPatients-1/base.apk"],nativeLibraryDirectories=[/data/app/com.VRPatients.VRPatients-1/lib/arm, /data/app/com.VRPatients.VRPatients-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2571)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2740)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6144)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
    Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.VRPatients.VRPatients-1/base.apk
    at dalvik.system.DexFile.openDexFileNative(Native Method)
    at dalvik.system.DexFile.openDexFile(DexFile.java:367)
    at dalvik.system.DexFile.<init>(DexFile.java:112)
    at dalvik.system.DexFile.<init>(DexFile.java:77)
    at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
    at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
    at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
    at dalvik.system.DexPathList.<init>(DexPathList.java:126)
    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
    at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
    at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
    at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:520)
    at android.app.LoadedApk.getClassLoader(LoadedApk.java:553)
    at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1866)
    at android.app.LoadedApk.getResources(LoadedApk.java:766)
    at android.app.ContextImpl.<init>(ContextImpl.java:2038)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:1983)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5319)
    at android.app.ActivityThread.-wrap2(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
    ... 6 more

    -------------------

    2019-06-04 14:57:00.453 3638-3689/? W/RCTVR_HERMES: [warn]: 'Home', [ 'Error fetching translations: ',
    { [Error: No dictionary for 'en_US'] framesToPop: 1 } ]
    2019-06-04 14:57:00.525 1764-1923/? E/DatabaseUtils: Writing exception to parcel
    java.lang.SecurityException: Component access not allowed.
    at com.oculus.content.PermissionChecks.throwAccessException(PermissionChecks.java:91)
    at com.oculus.content.AbstractContentProvider.enforcePermissions(AbstractContentProvider.java:209)
    at com.oculus.content.AbstractContentProvider.ensureInitializedAndEnforcePermissions(AbstractContentProvider.java:215)
    at com.oculus.content.AbstractContentProvider.query(AbstractContentProvider.java:366)
    at android.content.ContentProvider$Transport.query(ContentProvider.java:240)
    at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
    at android.os.Binder.execTransact(Binder.java:565)
    2019-06-04 14:57:00.526 1840-3708/? E/FbConnectHelper: Failed to query FB auth token from Horizon
    java.lang.SecurityException: Component access not allowed.
    at android.os.Parcel.readException(Parcel.java:1692)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
    at android.content.ContentResolver.query(ContentResolver.java:534)
    at android.content.ContentResolver.query(ContentResolver.java:475)
    at com.oculus.fbconnecthelper.FbConnectHelper.queryFbAuthTokenFromHorizon(FbConnectHelper.java:76)
    at com.oculus.fbconnecthelper.FbConnectHelper.getFbAuthToken(FbConnectHelper.java:113)
    at com.oculus.analytics.SimpleUploader.getAccessToken(SimpleUploader.java:44)
    at com.facebook.analytics2.uploader.okhttp3.OkHttp3AnalyticsUploader.createRequest(OkHttp3AnalyticsUploader.java:119)
    at com.facebook.analytics2.uploader.okhttp3.OkHttp3AnalyticsUploader.upload(OkHttp3AnalyticsUploader.java:89)
    at com.facebook.analytics2.logger.PrivacyControlledUploader.upload(PrivacyControlledUploader.java:36)
    at com.facebook.analytics2.logger.UploadProcessor.uploadNext(UploadProcessor.java:49)
    at com.facebook.analytics2.logger.UploadJobHandler.doMaybeUploadNext(UploadJobHandler.java:206)
    at com.facebook.analytics2.logger.UploadJobHandler.handleMessage(UploadJobHandler.java:89)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.os.HandlerThread.run(HandlerThread.java:61)
    2019-06-04 14:57:00.544 706-3361/? E/[CT]: AdHocPatch: not initialized: waiting for reliable pose
    2019-06-04 14:57:00.639 1764-1923/? E/DatabaseUtils: Writing exception to parcel
    java.lang.SecurityException: Component access not allowed.
    at com.oculus.content.PermissionChecks.throwAccessException(PermissionChecks.java:91)
    at com.oculus.content.AbstractContentProvider.enforcePermissions(AbstractContentProvider.java:209)
    at com.oculus.content.AbstractContentProvider.ensureInitializedAndEnforcePermissions(AbstractContentProvider.java:215)
    at com.oculus.content.AbstractContentProvider.query(AbstractContentProvider.java:366)
    at android.content.ContentProvider$Transport.query(ContentProvider.java:240)
    at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
    at android.os.Binder.execTransact(Binder.java:565)
    2019-06-04 14:57:00.640 1840-3708/? E/FbConnectHelper: Failed to query FB auth token from Horizon
    java.lang.SecurityException: Component access not allowed.
    at android.os.Parcel.readException(Parcel.java:1692)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
    at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
    at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
    at android.content.ContentResolver.query(ContentResolver.java:534)
    at android.content.ContentResolver.query(ContentResolver.java:475)
    at com.oculus.fbconnecthelper.FbConnectHelper.queryFbAuthTokenFromHorizon(FbConnectHelper.java:76)
    at com.oculus.fbconnecthelper.FbConnectHelper.getFbAuthToken(FbConnectHelper.java:113)
    at com.oculus.analytics.SimpleUploader.getAccessToken(SimpleUploader.java:44)
    at com.facebook.analytics2.uploader.okhttp3.OkHttp3AnalyticsUploader.createRequest(OkHttp3AnalyticsUploader.java:119)
    at com.facebook.analytics2.uploader.okhttp3.OkHttp3AnalyticsUploader.upload(OkHttp3AnalyticsUploader.java:89)
    at com.facebook.analytics2.logger.PrivacyControlledUploader.upload(PrivacyControlledUploader.java:36)
    at com.facebook.analytics2.logger.UploadProcessor.uploadNext(UploadProcessor.java:49)
    at com.facebook.analytics2.logger.UploadJobHandler.doMaybeUploadNext(UploadJobHandler.java:206)
    at com.facebook.analytics2.logger.UploadJobHandler.handleMessage(UploadJobHandler.java:89)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.os.HandlerThread.run(HandlerThread.java:61)
     
  2. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    134
    some extra infromation. We're using addressables 0.7.5, and I saw this message as well:
    android.content.res.Resources$NotFoundException: String resource ID #0x7f020000

    target api 28
     
    Last edited: Jun 4, 2019
  3. bhmed

    bhmed

    Joined:
    Feb 5, 2014
    Posts:
    16
    I am also getting this issue, on Oculus Go. Building from Unity 2019.3.0a3, targeting API 27. App crashes upon launch.

    Analyzing the APK in Android Studio shows that classes.dex contains a reference to com.unity3d.player.UnityPlayerActivity, but this happens anyway:

    AndroidRuntime: Shutting down VM
    AndroidRuntime: FATAL EXCEPTION: main
    AndroidRuntime: Process: com.Company.Product, PID: 2883
    AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.Company.Product/com.unity3d.player.UnityPlayerActivity}: java.lang.ClassNotFoundException: Didn't find class "com.unity3d.player.UnityPlayerActivity" on path: DexPathList[[zip file "/data/app/com.Company.Product-1/base.apk"],nativeLibraryDirectories=[/data/app/com.Company.Product-1/lib/arm, /data/app/com.Company.Product-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
    AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2582)
    AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741)
    AndroidRuntime: at android.app.ActivityThread.-wrap12(ActivityThread.java)
    AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
    AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
    AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
    AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6145)
    AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
    AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
    AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
    AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.unity3d.player.UnityPlayerActivity" on path: DexPathList[[zip file "/data/app/com.Company.Product-1/base.apk"],nativeLibraryDirectories=[/data/app/com.Company.Product-1/lib/arm, /data/app/com.Company.Product-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
    AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
    AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    AndroidRuntime: at android.app.Instrumentation.newActivity(Instrumentation.java:1079)
    AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2572)
    AndroidRuntime: ... 9 more
    AndroidRuntime: Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.Company.Product-1/base.apk
    AndroidRuntime: at dalvik.system.DexFile.openDexFileNative(Native Method)
    AndroidRuntime: at dalvik.system.DexFile.openDexFile(DexFile.java:367)
    AndroidRuntime: at dalvik.system.DexFile.<init>(DexFile.java:112)
    AndroidRuntime: at dalvik.system.DexFile.<init>(DexFile.java:77)
    AndroidRuntime: at dalvik.system.DexPathList.loadDexFile(DexPathList.java:359)
    AndroidRuntime: at dalvik.system.DexPathList.makeElements(DexPathList.java:323)
    AndroidRuntime: at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
    AndroidRuntime: at dalvik.system.DexPathList.<init>(DexPathList.java:126)
    AndroidRuntime: at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
    AndroidRuntime: at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
    AndroidRuntime: at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
    AndroidRuntime: at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
    AndroidRuntime: at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:520)
    AndroidRuntime: at android.app.LoadedApk.getClassLoader(LoadedApk.java:553)
    AndroidRuntime: at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1867)
    AndroidRuntime: at android.app.LoadedApk.getResources(LoadedApk.java:766)
    AndroidRuntime: at android.app.ContextImpl.<init>(ContextImpl.java:2038)
    AndroidRuntime: at android.app.ContextImpl.createAppContext(ContextImpl.java:1983)
    AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5320)
    AndroidRuntime: at android.app.ActivityThread.-wrap2(ActivityThread.java)
    AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1546)
    AndroidRuntime: ... 6 more
     
  4. bhmed

    bhmed

    Joined:
    Feb 5, 2014
    Posts:
    16
    Okay, I was able to successfully launch the app today.

    First, I wondered if my APK size (about 2.4gb) had anything to do with it. I moved the large video assets I had onto the Oculus Go's SD card, and removed them from the StreamingAssets folder. I also had an unused 3rd party asset package with some large assets, so I attempted to delete the folder from within Unity. It alerted me that some loaded DLLs were in that package, which I hadn't realized. It turns out the package actually included DLLs related to Android and GoogleVR. I disabled them, restarted Unity and deleted the assets.

    After all that, I built again, and the app was able to launch. I can't be 100% sure whether the 3rd party DLLs or the large file size were the problem, but I'm willing to bet it was the DLLs. Strangely, with all the searches I've done on this issue, I only very recently came across this Unity doc, which warns about 3rd party plugins: https://docs.unity3d.com/Manual/TroubleShootingAndroid.html
     
  5. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    134
    I've double checked my project for rogue dll's, and my total build size is about 2.3 gig's I didn't have any massive assets. Still haven't found whats causing the issues i'm seeing. my best guess is its related to addressable asset bundles.
     
  6. wirelessdreamer

    wirelessdreamer

    Joined:
    Apr 13, 2016
    Posts:
    134
    I've found one lead so far, we're using addressable in our project. when I kill the addressables data folder, the project will load into the initial scene (which isn't an addressable) so its pointing to addressables being the cause of my issue.
     
  7. paulatwarp

    paulatwarp

    Joined:
    May 17, 2018
    Posts:
    135
    I also had this. The problem (for me) was that the maximum size for the APK is 100MB and for the OBB is 2GB. By splitting up my project an using additional external asset bundles I was able to get it to load.
     
  8. stenfeio

    stenfeio

    Joined:
    Jan 18, 2015
    Posts:
    22