0
目標
在android系統創建天然活性創建原生Android活動:通過命令行只(生成文件)
- 通過
vim
&Makefile
只有 - 沒有用的
gradle, ant, maven, android.mk
和所有其他東西
問題
- 我已經通過makefile在我的Samsung S7上創建了一個(java-native)android apk安卓版。
- 當我嘗試運行該應用程序時,它與「
Unable to load native library
」崩潰。 - 我的直覺告訴我,我沒有正確編譯/連接
android_native_app_glue.c --> libandroid_native_app_glue.a
和main.cpp --> libnative-activity.so
。 - 它正常工作與谷歌的預編譯armeabi-V7A
libnative-activity.so
- 這裏是源代碼:https://github.com/skanti/Android-Manual-Build-Command-Line/tree/master/native-activity
我第一次創建靜態應用膠水爲:
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
您似乎在構建libnative-activity.a,而不是libnative-activity.so。 – solidpixel
是什麼讓你覺得呢?查看標誌'''-fpic'''和''''''''''''''。我也通過'''readelf''檢查了'''.so'''。這似乎也很好。 –
您正在將最終命令的輸出文件定義爲「-o libnative-activity.a」,但是如果文件顯示爲OK,那麼我想不是這樣。 – solidpixel