0

私のアプリは、OpenCVサンプル(カメラ付きのサンプル2)に大きく基づいており、OpenCV2.4.0にリンクしています。1か月ほどのトラブルのない作業の後、私は突然、恐ろしい「Dalvikエラー1」の問題に悩まされました。通常の修正が機能しなかったとき、問題が解決することを期待して、同じソースファイルを使用して新しいプロジェクトを最初から作成することにしました...

ビルドはできますが、起動時にクラッシュします。コンソールの内容は次のとおりです。

06-07 14:01:01.383: D/dalvikvm(20915): Trying to load lib /data/data/barry.opencvdemo/lib/libopencv_java.so 0x4051c988
06-07 14:01:02.204: D/dalvikvm(20915): Added shared lib /data/data/barry.opencvdemo/lib/libopencv_java.so 0x4051c988
06-07 14:01:02.354: D/AndroidRuntime(20915): Shutting down VM
06-07 14:01:02.354: W/dalvikvm(20915): threadid=1: thread exiting with uncaught exception (group=0x4001d5a0)
06-07 14:01:02.374: E/AndroidRuntime(20915): FATAL EXCEPTION: main
06-07 14:01:02.374: E/AndroidRuntime(20915): java.lang.RuntimeException: Unable to start activity ComponentInfo{barry.opencvdemo/barry.opencvdemo.Sample2NativeCamera}: java.lang.NullPointerException
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.ActivityThread.access$1500(ActivityThread.java:135)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.os.Looper.loop(Looper.java:150)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.ActivityThread.main(ActivityThread.java:4385)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at java.lang.reflect.Method.invokeNative(Native Method)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at java.lang.reflect.Method.invoke(Method.java:507)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at dalvik.system.NativeStart.main(Native Method)
06-07 14:01:02.374: E/AndroidRuntime(20915): Caused by: java.lang.NullPointerException
06-07 14:01:02.374: E/AndroidRuntime(20915):    at barry.opencvdemo.Sample2NativeCamera.onCreate(Sample2NativeCamera.java:47)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
06-07 14:01:02.374: E/AndroidRuntime(20915):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
06-07 14:01:02.374: E/AndroidRuntime(20915):    ... 11 more

すべてが適切な場所に適切な名前で配置されているように見えますが、何かが機能していません。上記は、誰かが私が見逃している明らかな何かを指摘するのに十分ですか、それともソースコードを投稿する必要がありますか?コード自体機能していました...それは私が恐れているビルドまたはリンクの設定に関するものです。

神々がDalvikError1のビジネス全体について何かをするとき、私はとても幸せになります。

提案をありがとう。

4

2 に答える 2

0

try catch blockコードをonCreate囲み、キャッチにブレークポイントを設定します。例外をキャッチします。例外ログから、まだ初期化されていないオブジェクト/変数を使用しているように見えます。

于 2012-06-07T15:29:57.020 に答える
0

これは、アプリで予期しないエラーが発生し、それに対応する方法がわからない場合に発生します。前に述べたように、コードの一部をtry/catchブロックで囲むことができます。

さらに:06-07 14:01:02.374: E/AndroidRuntime(20915): java.lang.RuntimeException: Unable to start activity ComponentInfo{barry.opencvdemo/barry.opencvdemo.Sample2NativeCamera}: java.lang.NullPointerException

これはあなたが抱えている問題を解決するための手がかりです。NullPointerExceptionは、クラスがどこかでオブジェクトを予期していたが、代わりにnullを取得したことを意味します。

コードの関連部分をtry/catchで囲むか、System.out.println()を配置して、実行が機能しなくなる場所を確認することができます。

お役に立てれば!

于 2012-06-07T15:47:56.200 に答える