11

ADT を 19 に更新してから、次のエラーが発生し始めました。アプリを起動するたびに問題が発生します。これに関連する以前の投稿をすべて確認しましたが、どれも役に立たないようです。どんなアイデアでも大歓迎です...

私のセットアップ

  1. 現在、Windows 7 64 ビットで ADT 18、SDK 19、elcipse を使用しています。
  2. ashare.jar を作成するライブラリ プロジェクトを使用し、すべての外部 jar (つまり、ドロップボックス、コモンズ コーデック) はライブラリ プロジェクト (Ashare) の「libs」フォルダにあります。
  3. 私はプロガードを使用しません。

この問題をどのように見るか。

  1. Eclipse で apk を作成 > {MyProject} > 右クリック > Android ツール > 署名済みアプリケーション パッケージのエクスポート
  2. 「adb install XXX.apk」を使用して、エミュレーターまたは dev.phone に apk をインストールします。
  3. アプリを起動します。次に、ブーム。それはエラーをスローします。

いくつかの注目すべき点は

  1. バージョン18にEclipseでADTに更新した後に発生し始めました
  2. 署名付き apk を作成し、エミュレータまたは dev.phone で実行した場合にのみ発生します。
  3. {MyProject} > 右クリック > Run As > Android Application を使用してアプリを実行しても問題はありません
  4. classes.dex の内部を確認すると、いくつかのクラスが欠落していることがわかります。よくわかりませんが、ビルドプロセスが classes.dex のすべてのクラスを含んでいないと感じています
  5. エクスポート中、Eclipse コンソールにエラーはありません (Android > Build > Build output 設定で詳細オプションを使用します)。

Java 例外

05-07 08:52:48.336: D/AndroidRuntime(3055): Shutting down VM
05-07 08:52:48.336: W/dalvikvm(3055): threadid=1: thread exiting with uncaught exception (group=0x40a3e1f8)
05-07 08:52:48.340: E/AndroidRuntime(3055): FATAL EXCEPTION: main
05-07 08:52:48.340: E/AndroidRuntime(3055): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.acj0.barcodeexpdemo/com.acj0.barcodeexpdemo.Launcher}: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.os.Looper.loop(Looper.java:137)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.ActivityThread.main(ActivityThread.java:4424)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at java.lang.reflect.Method.invokeNative(Native Method)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at java.lang.reflect.Method.invoke(Method.java:511)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at dalvik.system.NativeStart.main(Native Method)
05-07 08:52:48.340: E/AndroidRuntime(3055): Caused by: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher
05-07 08:52:48.340: E/AndroidRuntime(3055):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
05-07 08:52:48.340: E/AndroidRuntime(3055):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
05-07 08:52:48.340: E/AndroidRuntime(3055):     ... 11 more

2012 年 5 月 7 日更新

  • 私のすべてのjarファイルはLibraryプロジェクトの「libs」フォルダーにあり、それらはすべて「Android Dependencies」に含まれていることがわかります

2012 年 5 月 18 日更新 - 一時的に解決済み

  • 一時的な解決策を見つけました。「署名済みアプリケーション パッケージのエクスポート」を実行する直前に、「自動ビルド」オプションをチェックせずに「クリーン」を実行しました。その後、エラーは表示されなくなりました。なぜ機能するのかわかりません。ご不明な点がございましたら、お知らせください。
4

4 に答える 4

2

外部jarをlibsディレクトリに配置します。あなたはこのリンクを見ることができます

于 2012-05-07T17:11:38.110 に答える
1

私は同じ問題を抱えていましたが、lujopが言及したリンクで説明されているようにすべてを行いました。不足しているものは次のとおりです。

  1. プロジェクトを右クリック>[ビルドパス]>[ビルドパスの構成...]
  2. [注文とエクスポート]タブをクリックします
  3. ライブラリ(Android xxx、Androidの依存関係)および参照している他のプロジェクトの横にあるチェックボックスをオンにします
  4. プロジェクトをクリーンアップする
  5. それはそれであるはずです

お役に立てば幸いです。

于 2012-05-12T10:34:02.503 に答える
0

私もこれを持っていました。これが私の修正です。ここに従って: http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

「参照ライブラリ」がないようにします。ある場合は、それらをすべて右クリックして、ビルド パスから削除します。フォルダーはなくなり、「Android Dependencies」だけが残るはずです。

于 2012-11-03T01:10:03.917 に答える