在android中创建原生活动:
vim
&仅Makefile
gradle, ant, maven, android.mk
和其他所有东西Unable to load native library
"崩溃。android_native_app_glue.c --> libandroid_native_app_glue.a
和main.cpp --> libnative-activity.so
。libnative-activity.so
我首先创建静态app-glue:
aarch64-linux-android-gcc -march=armv8-a -c android_native_app_glue.c -o native_app_glue.o
aarch64-linux-android-ar rcs libandroid_native_app_glue.a native_app_glue.o
然后我编译并链接main.cpp
:
aarch64-linux-android-c++ -march=armv8-a -std=c++11 -fPIC -c main.cpp -o main.o
aarch64-linux-android-c++ -shared -llog -landroid -lEGL -lGLESv1_CM -lnative_app_glue main.o -o libnative-activity.a
AndroidRuntime: Process: com.example.native_activity, PID: 30897
AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.native_activity/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app/com.example.native_activity-1/lib/arm64/libnative-activity.so
答案 0 :(得分:0)
适用于谷歌预编译的armeabi-v7a libnative-activity.so
如果这样可行,则zygote进程为32位。如果你没有改变任何其他内容,那么这意味着你试图将64位库加载到32位进程中,这将无法正常工作。
如果构建32位库,它是否正常工作?这至少可以证明你的构建正在做正确的事情,而且只需要改变流程创建。