Androidの初心者で、C++で関数を使用してアプリを作成する必要があり、* .soファイルを提供しました。このようにAndroidは* .soのライブラリにリンクできません
src
│ ├── main
│ │ ├── java
│ │ ├── jniLibs
│ │ │ ├── armeabi
│ │ │ │ ├── libjni_lib1.so
│ │ │ │ ├── libjni_lib2.so
│ │ │ │ ├── libjni_libn.so
Y負荷それを::
は、私は次のディレクトリにある* .soのファイルを置くstatic {
System.loadLibrary("jni_lib1");
}
しかし、私は、アプリケーションをデバッグするとき、次のエラーが発生します。
をjava.lang.UnsatisfiedLinkError: Native method not found: com.cloudpos.jniinterface.SmartCardInterface.smartcardInit:()I
at com.cloudpos.jniinterface.SmartCardInterface.smartcardInit(Native Method)
at cr.pf.com.controller.SmartCardController.searchBegin(SmartCardController.java:57)
at cr.pf.com.cr.MainActivity.onClick(MainActivity.java:134)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18439)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5111)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:780)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:596)
at dalvik.system.NativeStart.main(Native Method)
I /プロセス:送信信号。 PID:5364 SIG:9 アプリケーションが終了しました。
私はすでに* .soファイルを追加する方法を読んでおり、それらはすべてjniLibsフォルダに置いておきますが、どうすればいいですか?
1).apkファイルはzipファイルです。apkファイルの名前を変更して、.soファイルがapkファイルに作成されたかどうかを確認するために解凍します。 2) 'smartcardInit(...)'を持つ.hと.c/C++ファイルを表示してください。 3)JavaのloadLibraryは従属する.soファイルをロードしないので、一番従属する.soファイルの第1番目のファイル、次に最も依存する.soファイルなどをロードする必要があります。 –
私はすでにこれを行いました。他に何ができますか? – mareyes
だから、あなたはそれを管理しましたか? –