Java JNI错误“;“未找到”的实现-&燃气轮机;Android独立工具链

Java JNI错误“;“未找到”的实现-&燃气轮机;Android独立工具链,java,android,c++,java-native-interface,g++,Java,Android,C++,Java Native Interface,G++,我正在编译一个共享库(.so),以便在我的Android应用程序中使用 我用一个独立的工具链编译这个库 当通过Android虚拟设备(AVD)运行此应用程序时,共享库将在x86平台上加载并运行,不会出现任何问题。下面是我为x86编译的命令 i686-linux-android26-clang-I-I/home/veda/android-ndk-r21/sysroot/usr/include-O0-g3-Wall-c-fmessage length=0-static libgcc-march=i

我正在编译一个共享库(.so),以便在我的Android应用程序中使用

我用一个独立的工具链编译这个库

当通过Android虚拟设备(AVD)运行此应用程序时,共享库将在x86平台上加载并运行,不会出现任何问题。下面是我为x86编译的命令

  • i686-linux-android26-clang-I-I/home/veda/android-ndk-r21/sysroot/usr/include-O0-g3-Wall-c-fmessage length=0-static libgcc-march=i686-mtune=intel-mssse3-mfpmath=sse-m32-fPIC
  • i686-linux-android26-clang++-I-I/home/veda/android-ndk-r21/sysroot/usr/include-O0-g3-Wall-c-fmessage length=0-std=c++11-static libstdc++-march=i686-mtune=intel-msse3-mfpmath=sse-m32-fPIC
但是,当尝试将库加载到手机(谷歌像素)时,会显示以下错误。谷歌像素是arm64平台。下面是我为arm64编译的命令。有什么想法吗?

  • AARC64 linux android gcc-I/home/veda/android-ndk-r21/build/toolchain/sysroot/usr/include/android-O0-g3-Wall-c-fmessage length=0-static libgcc-fPIC
  • aarch64-linux-android-g++-I/home/veda/android-ndk-r21/build/toolchain/sysroot/usr/include/android-O0-g3-Wall-c-fmessage length=0-std=c++-11-静态libstdc++-fPIC
错误:

E/linker: "/data/app/com.example.androidsharedlibscratch-a6Mv8edOnQ2q6HbbixecrQ==/lib/arm64/libToon-c.so": ignoring DT_PREINIT_ARRAY in shared library! E/haredlibscratc: No implementation found for long com.example.androidsharedlibscratch.Toon.createToon() (tried Java_com_example_androidsharedlibscratch_Toon_createToon and Java_com_example_androidsharedlibscratch_Toon_createToon__) D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.androidsharedlibscratch, PID: 18368
    java.lang.UnsatisfiedLinkError: No implementation found for long com.example.androidsharedlibscratch.Toon.createToon() (tried Java_com_example_androidsharedlibscratch_Toon_createToon and Java_com_example_androidsharedlibscratch_Toon_createToon__)
        at com.example.androidsharedlibscratch.Toon.createToon(Native Method)
        at com.example.androidsharedlibscratch.Toon.<init>(Toon.java:44)
        at com.example.androidsharedlibscratch.MainActivity.onCreate(MainActivity.java:41)
        at android.app.Activity.performCreate(Activity.java:7144)
        at android.app.Activity.performCreate(Activity.java:7135)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6718)
        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)
E/linker:“/data/app/com.example.androidsharedlibscratch-a6mv8edonq6hbbixecrq==/lib/arm64/libToon-c.so”:忽略共享库中的DT_PREINIT_数组!E/haredlibscratc:long com.example.androidsharedlibscratch.Toon.createToon()未找到实现(尝试了Java_com_example_androidsharedlibscratch_Toon_createToon和Java_com_example_androidsharedlibscratch_Toon_createToon_)D/AndroidRuntime:关闭VM E/AndroidRuntime:致命异常:main
进程:com.example.androidsharedlibscratch,PID:18368
java.lang.UnsatifiedLinkError:找不到long com.example.androidSharedLibstrach.Toon.createToon()的实现(尝试了java_com_example_androidSharedLibstrach_Toon_createToon和java_com_example_androidSharedLibstrach_Toon_createToon_)
位于com.example.androidSharedLibStratch.Toon.createToon(本机方法)
在com.example.androidsharedlibscratch.Toon.(Toon.java:44)
位于com.example.androidSharedLibstrach.MainActivity.onCreate(MainActivity.java:41)
位于android.app.Activity.performCreate(Activity.java:7144)
位于android.app.Activity.performCreate(Activity.java:7135)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6718)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

请添加足够的代码,为我们提供一个最小完整的可复制示例,以及创建实际.so文件的命令。您是否可能正在将针对x86编译的对象文件(.o)链接到针对arm64的二进制文件中?