Не найдена реализация для void com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator()
Я новичок в Unity, я пытаюсь интегрировать игру Unity (в ней есть ARcore) в родное приложение для Android.
Я могу запустить единство в новом приложении HelloWorld, но не могу запустить в моем реальном приложении (в котором есть другие модули).
Примечание. Когда я создаю библиотеку Android из проекта Unity, я использую архитектуры armeabi-v7a и x86.
java.lang.UnsatisfiedLinkError: Не найдено для реализации ничтожной com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator() (пытался Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator и Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator__) на com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator(Native Method) в com.unity3d.player.UnityPlayer.resume(неизвестный источник:37) в com.rccl.soakTest.UnityPlayerActivity.onResume(UnityPlayerActivity.java:58) в android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1361) в android.app.Activity.performResume(действие.java:7344) в android.app.ActivityThread.performResumeActivity(ActivityThread.java:3763) в android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3036). на android.app.ActivityThread.-wrap11(неизвестный источник:0) на android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) на android.os.Handler.dispatchMessage(Handler.java:105) на android.os.Looper.loop(Looper.java:164) на android.app.ActivityThread.main(ActivityThread.java:6938) на java.lang.reflect.Method.invoke(собственный метод) на com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Протестировано на следующем устройстве: SamsungS8 (Oreo), Emulator-Nexus 6(Oreo)
0 ответов
Попробуйте включить ARM64:
- Обновление единства до 2018,3
- В настройках плеера android измените "скрипт-бэкэнд" на IL2CPP.
- В настройках андроид плеера установите флажок ARM64 как выбранный.
Если вы экспортируете проект Unity в build.gradle
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
Вам нужно добавить это предложение в ваш проект Android app.gradle
Наконец-то я понял причину этой проблемы,
ВОПРОС: Он ищет файлы JNI libs (.so) для архитектуры ARM-64.
В настоящее время ARCore не расширяет свою поддержку ARM64 ( https://github.com/google-ar/arcore-unity-sdk/issues/201. -> Это было исправлено сейчас), и приложение не работает.
Мое приложение поддерживает только ARM64 и ARMV7. Когда я исключаю ARM64 из фильтров и разделений ABI. Оно работает.
Я больше не использую ARCore из-за других проблем.
В моем случае это вызвано библиотеками JNI.
Я сделал пустой проект Android и добавил проект Unity в качестве модуля.
Таким образом, проект Android по умолчанию не может найти правильные библиотеки JNI, и это приводит к сбою так же, как ваше сообщение об ошибке.
Если вы проверите ваши файлы JNI в проекте.
Если есть, проверьте файлы Gradle, какие из путей добавлены правильно
У меня также есть эта ошибка на Huawei P10 Lite, и я ищу ответ на эту проблему.
Я следил за этой статьей, и когда я начал игру на Motorola G3, все было в порядке, но у Huawei P10 Lite и других телефонов Huawei есть ошибка. Я не знаю, в чем причина этой ошибки, я все еще пытаюсь ее решить.