1

AndroidアプリケーションにZXingを含めようとしています。

ZXingはJavaソースコードのみを提供するため、私はそれからjarファイルを自分で作成しました。

次に、JARをEclipseのAndroidプロジェクトのlibsフォルダーにドラッグして追加しました。

プロジェクトエクスプローラーは次のようになります

ビルドパスは次のようになります

私自身のコードでは、そのJARからクラスをインスタンス化しようとしています。

IntentIntegratorV30 integrator = new IntentIntegratorV30(this);

コンパイル時にエラーは発生しません。

しかし、実際のデバイスで実行時に次のエラーが発生します。

06-09 21:06:32.050: E/AndroidRuntime(1656): java.lang.NoClassDefFoundError: com.google.zxing.integration.android.IntentIntegratorV30

完全なLogCatは次のとおりです。

06-09 21:06:32.010: I/ApplicationPackageManager(1656): cscCountry is not German : XEO
06-09 21:06:32.010: I/dalvikvm(1656): Could not find method com.google.zxing.integration.android.IntentIntegratorV30.parseActivityResult, referenced from method de.fzi.guideme.fragments.scanner.ScannerFragment.onActivityResult
06-09 21:06:32.010: W/dalvikvm(1656): VFY: unable to resolve static method 181: Lcom/google/zxing/integration/android/IntentIntegratorV30;.parseActivityResult (IILandroid/content/Intent;)Lcom/google/zxing/integration/android/IntentResult;
06-09 21:06:32.010: D/dalvikvm(1656): VFY: replacing opcode 0x71 at 0x0003
06-09 21:06:32.020: E/dalvikvm(1656): Could not find class 'com.google.zxing.integration.android.IntentIntegratorV30', referenced from method de.fzi.guideme.fragments.scanner.ScannerFragment.onCreateView
06-09 21:06:32.020: W/dalvikvm(1656): VFY: unable to resolve new-instance 67 (Lcom/google/zxing/integration/android/IntentIntegratorV30;) in Lde/fzi/guideme/fragments/scanner/ScannerFragment;
06-09 21:06:32.020: D/dalvikvm(1656): VFY: replacing opcode 0x22 at 0x002d
06-09 21:06:32.020: I/GuideMe(1656): Fragment: class de.fzi.guideme.fragments.scanner.ScannerFragment, manual: null, function: null, step: null
06-09 21:06:32.040: D/AndroidRuntime(1656): Shutting down VM
06-09 21:06:32.040: W/dalvikvm(1656): threadid=1: thread exiting with uncaught exception (group=0x401d2760)
06-09 21:06:32.050: E/AndroidRuntime(1656): FATAL EXCEPTION: main
06-09 21:06:32.050: E/AndroidRuntime(1656): java.lang.NoClassDefFoundError: com.google.zxing.integration.android.IntentIntegratorV30
06-09 21:06:32.050: E/AndroidRuntime(1656):     at de.fzi.guideme.fragments.scanner.ScannerFragment.onCreateView(ScannerFragment.java:47)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:735)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:926)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:909)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.FragmentManagerImpl.dispatchStart(FragmentManager.java:1584)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.Activity.performStart(Activity.java:4377)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1724)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.ActivityThread.access$1500(ActivityThread.java:122)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.os.Looper.loop(Looper.java:132)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at android.app.ActivityThread.main(ActivityThread.java:4028)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at java.lang.reflect.Method.invokeNative(Native Method)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at java.lang.reflect.Method.invoke(Method.java:491)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
06-09 21:06:32.050: E/AndroidRuntime(1656):     at dalvik.system.NativeStart.main(Native Method)

Android SDK ToolsRev.19とAndroid3.1を実行しているSamsungGalaxyTab10.1でEclipse3.7.2を使用しています。

JARがAPKファイルに含まれていないようです。この問題を解決する方法について何か提案はありますか?

編集:私自身の質問に答える(コメントでの議論の結果として)。私が含めようとしたJARはどういうわけか間違っているに違いありません。JARを正しく構築する方法については、別の場所で説明します。

4

4 に答える 4

5

これは昨日私を殺していました。また、ビルドにエラーはありませんでしたが、実行中にエラーが発生しました。Android SDK がビルド パスをコンパイルする方法と関係があると思います。最終的にこれらの手順を繰り返したところ、エラーが発生しなくなりました。

  1. Android プロジェクトのルートに libs というフォルダーを作成します。
  2. jar をそのフォルダーに追加します。
  3. jar を右クリックし、クリックしてビルド パスに追加します。
  4. プロジェクトをクリーンアップします。
  5. プロジェクトをビルドします。
  6. 走る。

Android経由で外部jarからクラスを見つけることができません

于 2012-06-09T19:45:24.250 に答える
2

Android Studio は適切なクリーン & ビルドを行いません。

Anna Billstrom の指示に従う必要がありますが、次の注意事項があります。

  • コマンドラインを開きます。
  • プロジェクト ルートに移動します。
  • 実行する./gradle clean
  • Android Studio に戻り、プロジェクトを実行 / デバッグします。
  • ?
  • 利益。
于 2013-05-21T17:56:33.583 に答える
2

プロジェクトを右クリック>プロパティ-> Javaビルドパス->注文とエクスポート-> ZXing.jarをチェック

次に、プロジェクトをクリーンアップして再度ビルドします

于 2012-06-09T21:39:04.797 に答える
1

私もこのエラーを経験しました。

外部プロジェクトからjarをエクスポートしていたことがわかりました。ただし、Eclipse は、私が Android プロジェクトに使用することを認識していなかったため、コンパイラ レベルを自動的に 1.7 に設定しました。

Android は 1.6 のみをサポートしているため、エクスポート前のライブラリ プロジェクトでの解決策は次のとおりです。

右クリックProperties-> Java compiler-> Compiler compilance level-> 1.6

于 2013-05-16T20:18:08.660 に答える