Hi all,
Our QAs team and customers are reporting many issues with samsung devices with android 11 showing black screen when entering ARFoundation
For example: S20+ fw 11, S10+ fw 11
The issue does not occur with Pixel 2 fw 11 or Samsung Devices with android 10 or lower
Before it was fine but after we try to build with Target SDK 30 (as Google requirement for submission) the black screen occurs on fw 11
We are using AR Foundtion 4.1.7 with Unity 2020.3.16
Can anyone help us on this?
Cheers
The key message in your crash report is: E/DynamiteClient(19046): java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/~~u_1pv7mhEcdnnbSpbvHKgQ==/com.google.ar.core-ln9aByaqxbuIVWB73BtlpA==/base.apk!/lib/arm64-v8a/libarcore_c.so" [is](http://www.google.com/search?q=is+msdn.microsoft.com) 64-bit instead of 32-bit
Hi, Did you mean to turn of armv7 and keep only arm64?
We are enabling both ARMv7 and ARM64 in Player Settings
and Iām wondering why do those flagships choose to run armv7 apk instead of arm64 instead?
For devices that are 64-bit only or devices that support both 64- and 32-bit, the 64-bit version of the app should be used.
There are some devices that support ARCore but that are still only 32-bit. Only these devices should use the 32-bit version of the app.
If you are building for both armv7 and arm64, that is the correct approach. You will need to file a bug with Unity for us to be able to investigate the issue.
Yes we are using both armv7 and arm64 for 2 years and it has been working fine when we use unity 2019.4 and ARfoundation 3
Since when upgrade to unity 2020.3 and ARFoundation 4.1.7 recently,
the issue only occurs on Samsung S series with andoird 11 only (S10, S20, S21 and variants)
it does not occur on Samsung Note, A or Tab series or other manufactrurers like Pixel and Xiaomi
I believe this is a bug on how Unity/ARFoundation handle the so file foreach platform
@mb13admin
hi, we might have facing the same problem. I am on ARFoundation 4.1.1, ARCore 4.1.1 unity 2019.4.29. while armv7+arm64 build fails in some devices, only armv7 build works fine.
error log looks the same as yours:
E/DynamiteClient: Failed to load native library [packageName=com.google.ar.core,libraryName=arcore_c] from remote package:
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.google.ar.core-Sci-ciX5Ty7u1I-SDVNtRg==/base.apk!/lib/arm64-v8a/libarcore_c.so" is 64-bit instead of 32-bit
at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
at java.lang.System.loadLibrary(System.java:1667)
at com.google.vr.dynamite.NativeLibraryLoader.b(PG:5)
at com.google.vr.dynamite.NativeLibraryLoader.initializeAndLoadNativeLibrary(PG:2)
at faf.A(PG:6)
at adl.onTransact(PG:3)
at android.os.Binder.transact(Binder.java:914)
at com.google.a.a.a.a(BaseProxy.java:4)
at com.google.vr.dynamite.client.b.initializeAndLoadNativeLibrary(INativeLibraryLoader.java:9)
at com.google.vr.dynamite.client.DynamiteClient.loadNativeRemoteLibrary(DynamiteClient.java:35)
at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
at com.google.ar.core.Session.<init>(Session.java:11)
at com.google.ar.core.Session.<init>(Session.java:4)
at com.stxr.xrengine.XREngineActivity.isARCoreRun(XREngineActivity.java:187)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.access$300(Unknown Source:0)
at com.unity3d.player.UnityPlayer$e$1.handleMessage(Unknown Source:95)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:237)
this happen only on some devices like:
Sumsung Galaxy Zflip(SM-F711N)
Sumsung Galaxy S10(SC-03L) Android 10
SonyXperia 5ā ”(XQ-AS42) Android 11
I think itās something wrong with arfoundation accidentally trying to load 32bit .so even 64bit .so exist. Did you find a solution of this? Thanks
Having similar issues here^ and have tried countless fixes including:
Removing ARMv7 and only keeping ARM64
Updated to the latest version of ARFoundation (4.1.10)
Lowered the target API to Android 11 (down from from 32)
Turned off the āUpdate ARā option (which tries to update the users Google Play Services for AR)
Enabled multithreaded rendering
Disabled R8 minify
Reset the player settings and re-filled them
AR session component is disabled until the device passes a check that confirms if the device is AR compatible
Went from Unity 2020.3.19f1 to 2020.3.34f1
Downgraded to ARFoundation 4.0.12
Changed Tracking mode to āDonāt Careā from āPosition and Rotationā
My issue is that when trying to open the AR feature/ scene, the app freezes, shows a black screen, then crashes. This has been the case on Samsung and Google devices.
EDIT:
Manged to solve the issue on that thread; hope itās helpful to everyone else!
having same problem. app runs fine in standard pipeline. but when i switch to URP, app freezes. I do have AR background feature added in render pipeline settings.
āarm64-v8a/libarcore_c.soā is 64-bit instead of 32-bit means your āgoogle play services for arā is 64-bit ,but your app use 32-bit,so you need to update āgoogle play services for arā