我有一個原生的Android應用程序(NativeActivity
,沒有java代碼,但只libMyApp.so
本地庫)在4.2 4.3,但負荷加載本地庫無法在最新版本
該應用程序運行完全在Android 5.0.1和5.1 0.1,但崩潰在Android 4.3和4.2.2
對於5.0.1和5.1.1版本從
/data/data/com.example.myapp/lib/libMyApp.so
.so
LIB
4.3和4.2.2版本試圖從一個加載以下位置
的/data/app-lib/com.example.myapp-1/libMyApp.so
/data/app-lib/com.example.myapp-2/libMyApp.so
該錯誤消息是
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.example.myapp-2/libMyApp.so
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method
我的應用程序有一個單一的共享庫即不依賴於第三方庫。
和模塊名稱在清單文件中指定這樣的
<meta-data android:name="android.app.lib_name"
android:value="MyApp" />
的libMyApp.so
與-llog -lGLESv3 -lGLESv2 -lGLESv1_CM -lEGL -landroid -lz
庫鏈接。
爲什麼lib不能加載,我錯過了什麼?
爲什麼舊的android版本不能從/data/data/com.example.myapp/lib/
加載?
較舊的android版本是否有另一個模塊命名約定?
檢查的logcat從動態鏈接器的消息。 – fadden
@fadden沒有任何鏈接信息。有沒有鏈接器日誌記錄級別可以提升到和如何? – deimus