我是Unity的新手,我正在尝试将Unity游戏(它有ARcore)集成到原生Android应用程序中。
我可以在一个新的HelloWorld应用程序中启动统一但无法在我的真实应用程序(具有其他模块)中启动。
注意:当我从Unity项目构建一个android库时,我将包括armeabi-v7a和x86架构。
java.lang.UnsatisfiedLinkError: No implementation found for void com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator() (tried Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator and Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator__)
at com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator(Native Method)
at com.unity3d.player.UnityPlayer.resume(Unknown Source:37)
at com.rccl.soakTest.UnityPlayerActivity.onResume(UnityPlayerActivity.java:58)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1361)
at android.app.Activity.performResume(Activity.java:7344)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3763)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3036)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
在以下设备上测试:SamsungS8(Oreo),Emulator-Nexus 6(Oreo)
尝试启用ARM64:
如果您在build.gradle
中导出unity项目
修改项目build.gradle
文件以包含以下内容:
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
}
最后我得到了这个问题的原因,
问题:它正在寻找ARM-64架构的JNI库(.so)文件。
ARCore目前还没有扩展对ARM64的支持(https://github.com/google-ar/arcore-unity-sdk/issues/201。 - >现在已修复),应用程序崩溃了。
我的应用程序仅支持ARM64和ARMV7 ..当我从ABI过滤器和SPlits中排除ARM64时。有用。
由于其他问题,我不再使用ARCore。