web-dev-qa-db-ja.com

void com.unity3d.player.UnityPlayer.nativeRestartActivityIndi​​cator()の実装が見つかりません

私は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)

11
DevT

有効にしてみてくださいARM64

  1. Unityを2018.3に更新
  2. In Androidプレイヤーの設定が「スクリプトバックエンド」をIL2CPPに変更します。
  3. In Androidプレイヤー設定マークARM64選択されたチェックボックス。
3
Mohamad Bdour

build.gradleで統一プロジェクトをエクスポートする場合

プロジェクトbuild.gradleファイルを変更して、以下を含めます。

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

私の場合は、JNIライブラリが原因です。

空のAndroidプロジェクトを作成し、Unityプロジェクトをモジュールとして追加しました。

デフォルトAndroidプロジェクトは正しいJNIライブラリを見つけることができず、エラーメッセージと同じクラッシュを引き起こします。

JNIファイルをチェックすると、プロジェクト上にあります。

JNI libraries

ある場合は、どのパスが正しく追加されているかをgradleファイルで確認してください

gradle files

1
HyoJin KIM

最後に、私はその問題の理由を得ました、

問題:ARM-64アーキテクチャ用のJNIライブラリ(.so)ファイルを探しています。

ARCoreは現在、ARM64のサポートを拡張していません( https://github.com/google-ar/arcore-unity-sdk/issues/201 。->現在修正されています)、アプリはクラッシュします。

私のアプリはARM64とARMV7のみをサポートしています。ABIフィルターとSPlitsからARM64を除外する場合。できます。

他の問題のためにARCoreを使用することはもうありません。

0
DevT