找不到无效com.unity3d.player.UnityPlayer.nativeRestartActivityIndi​​cator()的实现

时间:2018-08-22 02:27:49

标签: android unity3d abi arcore unsatisfiedlinkerror

我是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)

4 个答案:

答案 0 :(得分:3)

如果您将团结项目导出到build.gradle

修改您的项目build.gradle文件以包括以下内容:

defaultConfig {
    ndk {
        abiFilters 'armeabi-v7a', 'x86'
    }
}

答案 1 :(得分:1)

尝试启用 ARM64

  1. 将统一性更新为2018.3
  2. 在android播放器设置中,将“脚本后端”更改为 IL2CPP
  3. 在android播放器设置中,选中 ARM64 复选框为选中状态。

答案 2 :(得分:0)

就我而言,这是由JNI库引起的。

我创建了一个空的Android项目,并添加了unity项目作为模块。

因此,默认的Android项目找不到正确的JNI库,它导致崩溃的原因与您的错误消息相同。

如果您检查JNI文件在项目中。

JNI libraries

如果存在,请检查gradle文件中正确添加了哪些路径

gradle files

答案 3 :(得分:0)

最后我找到了这个问题的原因,

问题:它正在寻找用于ARM-64体系结构的JNI库(.so)文件。

ARCore当前未扩展对ARM64的支持(https://github.com/google-ar/arcore-unity-sdk/issues/201。->现在已修复),该应用程序崩溃了。

我的应用仅支持ARM64和ARMV7。当我从ABI筛选器和拆分中排除ARM64时。可以。

由于其他问题,我不再使用ARCore。