Я компилирую общую библиотеку (.so) для использования в моем Android приложении.
Я компилирую эту библиотеку с помощью отдельного набора инструментов.
При запуске этого приложения через виртуальное устройство Android (AVD) общая библиотека загружается и работает без проблем на платформе x86. Ниже приведены мои команды для компиляции для x86.
- i686- linux -android26-clang -II / home / veda / android -ndk-r21 / sysroot / usr / include -O0 - g3 -Wall - c -fmessage-length = 0 -состояния c -libg cc -march = i686 -mtune = intel -mssse3 -mfpmath = sse -m32 -fPI C
- i686- linux -android26-clang ++ -II / home / veda / android -ndk-r21 / sysroot / usr / include -O0 -g3 -Wall - c -fmessage-length = 0 -std = c + +11 -stati c -libstdc ++ -march = i686 -mtune = intel -mssse3 -mfpmath = sse -m32 -fPI C
Однако при попытке загрузить библиотеку в на телефон (Google Pixel) отображается следующая ошибка. Пиксель Google - это платформа arm64. Ниже приведены мои команды для компиляции для arm64. Любые идеи?
- aarch64- linux - android -g cc -I / home / veda / android -ndk-r21 / build / toolchain / sysroot / usr / include / android -O0 -g3 -Wall - c -fmessage-length = 0 -stati c -libg cc -fPI C
- 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 -stati c -libstdc ++ -fPI C
Ошибка:
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)