2

Android NDK は初めてです。これは私の最初のプロジェクトです。http://code.google.com/p/apv/downloads/listから Android PDF リーダーをダウンロードしました。正常にコンパイルされていますが、このアプリから PDF を読み込もうとすると、. 以下のエラーが表示されます。

07-03 10:18:06.171: ERROR/AndroidRuntime(375): FATAL EXCEPTION: main
07-03 10:18:06.171: ERROR/AndroidRuntime(375): java.lang.ExceptionInInitializerError
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.pdfview.OpenFileActivity.getPDF(OpenFileActivity.java:541)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.pdfview.OpenFileActivity.startPDF(OpenFileActivity.java:502)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.pdfview.OpenFileActivity.onCreate(OpenFileActivity.java:219)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.os.Looper.loop(Looper.java:123)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.reflect.Method.invokeNative(Native Method)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.reflect.Method.invoke(Method.java:521)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at dalvik.system.NativeStart.main(Native Method)
07-03 10:18:06.171: ERROR/AndroidRuntime(375): Caused by: java.lang.UnsatisfiedLinkError: Library pdfview2 not found
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.Runtime.loadLibrary(Runtime.java:461)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at java.lang.System.loadLibrary(System.java:557)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     at cx.hell.android.lib.pdf.PDF.<clinit>(PDF.java:25)
07-03 10:18:06.171: ERROR/AndroidRuntime(375):     ... 16 more

非常に多くの質問で同様のエラーを見ました。私は NDK を初めて使用するので、何をすべきかわかりませんでした。

4

4 に答える 4

4

これがエラーを引き起こしたように見えます Caused by: java.lang.UnsatisfiedLinkError: Library pdfview2 not found

このライブラリをダウンロードするだけです、pdfview2

任意のzipツールを使用してファイルを開き、プロジェクトに必要なファイルをコピーすれば、準備は完了です。

于 2013-02-25T15:20:21.363 に答える
2

ネイティブ ライブラリをロードしないと、このエラーが発生します。これは多くの理由で発生します。Android.mkまず、ファイル (jniディレクトリ内) が適切に設定されていることを確認する必要があります。それ(またはそれら)が正しく設定されていると仮定すると、次のような行を見つけます。

LOCAL_MODULE := libpdfview2

この名前は重要なのでメモしておいてください。次に、次の行をアクティビティ (またはマルチ アクティビティ アプリのアプリケーション) の先頭に追加します。

static {
    System.loadLibrary("pdfview2");
}

ここで、名前に注意してください。これは、lib プレフィックスを削除したローカル モジュールの名前です。NDK ビルドが機能し、Android.mk ファイルが正しく設定されていると仮定すると、これで問題が解決します。


編集

また、ここにあるライブラリの構築に関する情報を読みましたか?

于 2013-02-28T22:05:42.937 に答える
1
Caused by: java.lang.UnsatisfiedLinkError: Library pdfview2 not found

上記の例外は、指定されたライブラリのリンクが見つからないために発生します。これは自明ですが、実際の理由は、関連プロジェクトの.soファイルがプロジェクトから作成された場合です。.so関数は、のパッケージ構造に従って作成されます。事業。そのため、プロジェクトでその.soを直接使用することはできません。

アプリケーションパッケージを使用して.soファイルを再構築する必要があります。その後、このエラーは無効になり、ネイティブ関数へのアクセスも取得できるようになります。

于 2013-03-04T10:50:49.553 に答える
1

PDFを開くための別の解決策があります。ここを覗いてみてください:

AndroidでPDFを開く

あなたのコードがなければ、何が起こっているのか想像するのは難しいと思います。

于 2013-02-25T15:20:33.343 に答える