Nexus7(2012) SQLcipherでUnsatisfiedLinkError

SQLcipher+Andengineで開発しているとたまにリンクがおかしくなる問題の解決方法を過去記事で紹介しましたが、今回は別の問題だったようです。

今回は、何度試しても下記のエラーで落ちます。

stlport_sharedが無いと言っている模様。なんですかそれは。/vendor/lib, /system/libとか、どう考えてもアプリ側じゃないぜよ。

11-07 16:15:23.926: E/AndroidRuntime(13996): FATAL EXCEPTION: main
11-07 16:15:23.926: E/AndroidRuntime(13996): java.lang.UnsatisfiedLinkError: Couldn't load stlport_shared from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.tsukamall.musou-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.tsukamall.musou-1, /vendor/lib, /system/lib]]]: findLibrary returned null
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at java.lang.Runtime.loadLibrary(Runtime.java:355)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at java.lang.System.loadLibrary(System.java:525)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:142)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at net.sqlcipher.database.SQLiteDatabase.loadLibs(SQLiteDatabase.java:137)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at com.tsukamall.db.DBHelperSave.getInstance(DBHelperSave.java:198)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at com.tsukamall.musou.ActivityTitle.onCreate(ActivityTitle.java:41)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.Activity.performCreate(Activity.java:5133)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.os.Handler.dispatchMessage(Handler.java:99)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.os.Looper.loop(Looper.java:137)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at android.app.ActivityThread.main(ActivityThread.java:5103)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at java.lang.reflect.Method.invokeNative(Native Method)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at java.lang.reflect.Method.invoke(Method.java:525)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-07 16:15:23.926: E/AndroidRuntime(13996): 	at dalvik.system.NativeStart.main(Native Method)

解決方法

1.ここからNDKを落としてくる

2.【android-ndk-r9b\sources\cxx-stl\stlport\libs\armeabi-v7a】にある、【libstlport_shared.so】を、プロジェクト名\libs\armeabi-v7a(なければ作成する) へ、コピペ。

これで解決しました。SQLchiperのlibsにarmeabi-v7aのフォルダが無かったのが盲点でした。結構時間持って行かれた・・・。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください