Re: エミュレータでは出来るのに、実機だとライブラリが見つからない

2,441 views
Skip to first unread message

nandai

unread,
Mar 31, 2013, 9:46:54 AM3/31/13
to android-g...@googlegroups.com
100nobusimさんこんばんわ。

まず、アプリは/data/data/<パッケージ名>/にインストールされ、この配下のlib/に
ライブラリも配置されます。

で、このlibは下の画像にあるようにシンボリックリンクになっていて、何度も
インストールを繰り返すなどしているうちにリンク先が変わってしまったんじゃないかと
思います。



手元のAndroid 4.1端末で試したところ同じようなエラーになりました。

03-31 22:12:23.922: E/AndroidRuntime(12466): java.lang.UnsatisfiedLinkError: Couldn't load slog from loader
                                             dalvik.system.PathClassLoader[dexPath=/data/app/jp.printf.slog.
                                             service-1.apk,libraryPath=/data/app-lib/jp.printf.slog.service-1]:
                                             findLibrary returned null

StackOverflowではアンインストールして、再インストールしたら直ったみたいなことが書かれてありました。

2013年3月31日日曜日 21時38分36秒 UTC+9 100no...@gmail.com:
eclipseで作成したらアプリ+jniライブラリで、エミュレータでは動作するのですが実機で実行するとアプリが起動しません。

実機からアプリをバックアップして、apkをzipで解凍すると[lib/armeabi/libntestjni.so]がちゃんとあるため、
なぜCouldn't load testjni: findLibrary returned nullになるのかわかりません。
解決方法等ありますでしょうか?

public class MainActivity extends Activity
{
    static {
        System.loadLibrary("testjni");
    }


・LogCat
03-31 21:27:56.640: W/dalvikvm(10245): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/example/test/jni/MainActivity;
03-31 21:27:56.640: W/dalvikvm(10245): Class init failed in newInstance call (Lcom/example/test/jni/MainActivity;)
03-31 21:27:56.640: W/dalvikvm(10245): threadid=1: thread exiting with uncaught exception (group=0x40b491f8)
03-31 21:27:56.650: E/AndroidRuntime(10245): FATAL EXCEPTION: main
03-31 21:27:56.650: E/AndroidRuntime(10245): java.lang.ExceptionInInitializerError
03-31 21:27:56.650: E/AndroidRuntime(10245):     at java.lang.Class.newInstanceImpl(Native Method)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at java.lang.Class.newInstance(Class.java:1319)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1884)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1994)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.app.ActivityThread.access$600(ActivityThread.java:128)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1160)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.os.Looper.loop(Looper.java:137)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at android.app.ActivityThread.main(ActivityThread.java:4538)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at java.lang.reflect.Method.invokeNative(Native Method)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at java.lang.reflect.Method.invoke(Method.java:511)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at dalvik.system.NativeStart.main(Native Method)
03-31 21:27:56.650: E/AndroidRuntime(10245): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load testjni: findLibrary returned null
03-31 21:27:56.650: E/AndroidRuntime(10245):     at java.lang.Runtime.loadLibrary(Runtime.java:365)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at java.lang.System.loadLibrary(System.java:535)
03-31 21:27:56.650: E/AndroidRuntime(10245):     at com.example.test.jni.MainActivity.<clinit>(MainActivity.java:37)
03-31 21:27:56.650: E/AndroidRuntime(10245):     ... 15 more


100no...@gmail.com

unread,
Mar 31, 2013, 10:45:47 AM3/31/13
to android-g...@googlegroups.com

nandaiさん、返信ありがとうございます。

adb shellで確認しようとしましたが、権限が無くてシンボルリンクになっているか確認出来ませんでしたが、
アドバイス通り一度アンインストールしましたところ、正常にリンクし起動できました。

ありがとうございました。

Reply all
Reply to author
Forward
0 new messages