android2018. 6. 18. 18:52




NDK app을 system/app or system/priv-app 에 추가하여 system app으로 구동시킬 때

예상과 달리 LoadLibrary에 실패하였다.



테스트 해보진 않았으나, so file을 따로 미리정해진 path인 nativeLibraryDirectories 경로에 위치시켜야 하는 것으로 보인다.



/system/priv-app/NDKSample/lib/arm

/system/lib

/vendor/lib

/system/lib

/vendor/lib



06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/priv-app/NDKSample/NDKSample.apk"],nativeLibraryDirectories=[/system/priv-app/NDKSample/lib/arm, /system/lib, /vendor/lib, /system/lib, /vendor/lib]]] couldn't find "libnative-lib.so"

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at java.lang.Runtime.loadLibrary0(Runtime.java:1011)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at java.lang.System.loadLibrary(System.java:1657)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at simplendk.android.com.ndksample.MainActivity.<clinit>(MainActivity.java:17)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at java.lang.Class.newInstance(Native Method)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.app.Instrumentation.newActivity(Instrumentation.java:1173)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2708)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.app.ActivityThread.-wrap11(Unknown Source:0)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.os.Handler.dispatchMessage(Handler.java:105)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.os.Looper.loop(Looper.java:164)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at android.app.ActivityThread.main(ActivityThread.java:6541)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at java.lang.reflect.Method.invoke(Native Method)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)

06-18 18:16:48.708  6826  7451 D TchAnalyticsSvc:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

06-18 18:16:48.783  3778  5349 I ActivityManager: Process simplendk.android.com.ndksample (pid 7427) has died: vis  +99TOP 




해당 topic으로 구글링해보니 유사한 언급을 하는 것으로 보인다.


https://groups.google.com/forum/#!topic/android-ndk/X1mRZwBxZLc


The .so's for apps placed in /system/app by the rom author or 
update.zip should be included in /system/lib by the rom author or 
update.zip 

Posted by easy16