2011-12-21 13 views
0

私はcとC++に既存のコードを持っています。これらのcファイルとcppファイルをAndroid.mkファイルに追加しました。そして私は正常に私のアプリケーションでitv.soという名前の.soファイルを作成しました。しかし、今、私はこのエラーが来ている理由を私は知らない...それはのようなエラーを示しているAndroidのアプリケーションを実行するためにjava.lang.ExceptionInInitializerError原因:java.lang.UnsatisfiedLinkError:ライブラリが見つかりません

12-20 13:26:31.362: E/AndroidRuntime(716): FATAL EXCEPTION: main 
12-20 13:26:31.362: E/AndroidRuntime(716): java.lang.ExceptionInInitializerError 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.example.Internet_TV12.onCreate(Internet_TV12.java:38) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.os.Looper.loop(Looper.java:123) 
12-20 13:26:31.362: E/AndroidRuntime(716): at android.app.ActivityThread.main(ActivityThread.java:4627) 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.reflect.Method.invokeNative(Native Method) 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.reflect.Method.invoke(Method.java:521) 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
12-20 13:26:31.362: E/AndroidRuntime(716): at dalvik.system.NativeStart.main(Native Method) 
12-20 13:26:31.362: E/AndroidRuntime(716): Caused by: java.lang.UnsatisfiedLinkError: Library itv not found 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.Runtime.loadLibrary(Runtime.java:461) 
12-20 13:26:31.362: E/AndroidRuntime(716): at java.lang.System.loadLibrary(System.java:557) 
12-20 13:26:31.362: E/AndroidRuntime(716): at com.example.Display.<clinit>(Display.java:69) 
12-20 13:26:31.362: E/AndroidRuntime(716): ... 14 more 

をしようとしていたとき。私はlibitv.soファイルを持っているlibフォルダを見てきました。 私はまた

static { 
     try { 
      System.loadLibrary("itv"); 
      // System.load("/data/data/com/example/lib/itv.so"); 
     } 
     catch (UnsatisfiedLinkError use) { 
       Log.e("JNI", "WARNING: Could not load itv.so"); 
      } 
     } 

を試みたが、同じエラーを取得しています。 誰でも私にこのエラーの解決策を教えてください。 アドバンスでありがとうございます。

+0

この投稿をチェックするhttp://stackoverflow.com/a/5367617/760489 – Pratik

答えて

7

あなたのlibsディレクトリのarmeabiフォルダに入れます.apkがビルドされる前に、アプリケーションディレクトリのlibs \ armeabiディレクトリに置かれます。

一部のシステムの問題によりライブラリが完全にコピーされない場合(部分コピー)、部分ライブラリも認識されません。

+0

返信ありがとう...これが理由かもしれません...しかし、どうすればこの問題を解決できますか? – geeta

+0

作成した場所のライブラリのサイズとコピーしたパスを確認するにはどうすればいいですか? – Deepak

+0

+1正しい表示 – Sameer

2

実際のファイルlibitv.soを命名してください(LIB +ライブラリ名+の.so)とその名前がlibitv.soで、ある場合に、ライブラリが認識されます

+1

返信いただきありがとうございます。私は実際のファイル名libitv.soで試しました...しかし、同じエラーが発生しています... – geeta

+0

おそらくMacでですか? – zienkikk

+1

いいえ私はWindows上にありません... – geeta

関連する問題