Android Studio-ARCore-E/DynamiceClient:无法从远程软件包加载本机库[packageName=com.google.ar.core,libraryName=ARCore_c]:

Android Studio-ARCore-E/DynamiceClient:无法从远程软件包加载本机库[packageName=com.google.ar.core,libraryName=ARCore_c]:,android,arcore,sceneform,Android,Arcore,Sceneform,我正在尝试遵循一个错误,但是当我尝试启动应用程序时,我不断出现此错误: 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-dmlqkWErg

我正在尝试遵循一个错误,但是当我尝试启动应用程序时,我不断出现此错误:

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-dmlqkWErgZyoM0RLfsTjSw==/lib/arm/libarcore_c.so" has unexpected e_machine: 40 (EM_ARM)
        at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
        at java.lang.System.loadLibrary(System.java:1669)
        at com.google.vr.dynamite.NativeLibraryLoader.a(PG:30)
        at com.google.vr.dynamite.NativeLibraryLoader.initializeAndLoadNativeLibrary(PG:14)
        at evx.a(PG:7)
        at xo.onTransact(PG:5)
        at android.os.Binder.transact(Binder.java:667)
        at com.google.a.a.b.transactAndReadException(BaseProxy.java:10)
        at com.google.vr.dynamite.client.b.initializeAndLoadNativeLibrary(INativeLibraryLoader.java:5)
        at com.google.vr.dynamite.client.DynamiteClient.loadNativeRemoteLibrary(DynamiteClient.java:26)
        at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
        at com.google.ar.core.Session.<init>(Session.java:14)
        at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:419)
        at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:405)
        at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:379)
        at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338)
        at androidx.fragment.app.Fragment.performResume(Fragment.java:2649)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:922)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
        at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManagerImpl.java:2625)
        at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:268)
        at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:479)
        at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:468)
        at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:195)
        at android.app.Activity.performResume(Activity.java:7317)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3776)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/third_party/arcore/java/com/google/vr/dynamite/client/native/dynamite_client.cc: Dynamite::LoadNativeRemoteLibrary handle=0
E/third_party/arcore/ar/core/android/sdk/session_create.cc: Dynamite failed to load remote library
    LoadSymbolsDynamite returning AR_ERROR_FATAL.
    LoadSymbols returning status.
E/StandardArFragment: Error: Failed to create AR session
    com.google.ar.core.exceptions.UnavailableException
        at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:391)
        at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338)
        at androidx.fragment.app.Fragment.performResume(Fragment.java:2649)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:922)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
        at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManagerImpl.java:2625)
        at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:268)
        at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:479)
        at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:468)
        at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:195)
        at android.app.Activity.performResume(Activity.java:7317)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3776)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816)
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: com.google.ar.core.exceptions.FatalException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at com.google.ar.core.Session.throwExceptionFromArStatus(Session.java:143)
        at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
        at com.google.ar.core.Session.<init>(Session.java:14)
        at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:419)
        at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:405)
        at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:379)
        at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338) 
        at androidx.fragment.app.Fragment.performResume(Fragment.java:2649) 
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:922) 
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238) 
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) 
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659) 
        at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManagerImpl.java:2625) 
        at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:268) 
        at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:479) 
        at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:468) 
        at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:195) 
        at android.app.Activity.performResume(Activity.java:7317) 
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3776) 
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816) 
        at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) 
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

从那里可以看出,您是在Intel而不是ARM设备上运行应用程序,不同的硬件通常需要不同的库文件

如果您在仿真器中运行应用程序,则ARCore说明将提供有关为仿真器设置x86支持的信息():

获取用于ARCore的Android Studio和SDK工具

安装Android Studio 3.1或更高版本

在Android Studio中,进入首选项>外观和行为>系统设置>Android SDK

选择SDK平台选项卡并选中显示软件包详细信息

在Android 8.1(Oreo)下,选择:

谷歌API英特尔x86 Atom系统映像API级别27,版本4或更高版本。

选择SDK工具选项卡并添加Android Emulator 27.2.9或更高版本

单击“确定”安装选定的软件包和工具

再次单击“确定”以确认更改

接受组件安装程序的许可协议

单击Finish

如果你的应用程序也包含NDK组件,请查看上面同一链接中关于需要x86 API的说明,作为检查,但我认为这不适用于你目前的情况

如果出于某种原因,您需要在x86b上运行,并且没有所需的某些二进制文件的x86版本,那么有一个名为libhoundi的库可以实现这一点。这里有一个很好的概述:


同样,我认为这不适用于您的情况,但了解背景可能会有用。

这最终会有所帮助。我错过了必须将APK拖到模拟器上的部分。我也开始使用下面的代码,错误消失了<代码>像素2 API 29-Q10.0 x86
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.arcoretestjava">

    <!-- "AR Required" apps must declare minSdkVersion >= 24. -->
    <uses-sdk android:targetSdkVersion="29"/>

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-feature android:name="android.hardware.camera.ar" android:required="true"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data android:name="com.google.ar.core" android:value="required"/>

    </application>
</manifest>
    implementation 'com.google.ar.sceneform.ux:sceneform-ux:1.15.0'
    implementation 'com.google.ar:core:1.16.0