7

Android SDK、ADT、および Proguard を最新かつ最高のものにアップグレードしました。

私のプロジェクトはビルドをコンパイルし、デバッグ モードで正常に実行されますが、その署名済みリリース APK をエクスポートしようとするとすぐに、エクスポート ウィザードからエラーが表示され、Eclipse コンソールにエラー ログ メッセージは表示されません!*

ここに画像の説明を入力

エラーログを表示しようとすると、表示されるものはWindow->Show View->Error Logすべて同じです。

ここに画像の説明を入力

EclipseもProguardも問題の可能性についてのヒントを提供しないため、どうすればよいかわかりません。

私のプロジェクトは、この最近のアップグレードまで正常にエクスポートされました。ビルド警告はありません。糸くずの警告なし!

で Android の標準構成ファイルを使用しています${sdk.dir}\tools\proguard\proguard-android.txt

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

-dontoptimize
-dontpreverify

-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgent
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
   public void *(android.view.View);
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

-dontwarn android.support.**

そして、私のプロジェクトの proguard.cfg には次のものしか含まれていません:

-assumenosideeffects class android.util.Log {
    public static *** v(...);
    public static *** i(...);
    public static *** d(...);
    public static *** w(...);
    public static *** e(...);
}

この問題を以前に見た人はいますか?これを修正する方法はありますか?

何か進展?これを行ってアップグレードして以来、初めて署名付き APK をエクスポートできました。

  1. CCleaner を実行して、Windows システム内のすべての一時ファイルとキャッシュを消去しました。
  2. 次に、Windowsを再起動しました。

しかし、残念なことに、次に署名済み APK を再度エクスポートしようとしたときに、コンソール メッセージなしFailed to export applicationで同じものを受け取りました! また!

Android 開発ツールが不安定になっていることは明らかです。署名済み APK をエクスポートするたびに、CCleaner を実行して Windows を再起動することはできません。そして、誰のせいかは気にしません: Android SDK? ADT プラグイン? プロガード?

私は今何をしますか?

もう少し進歩?Proguard をオフにして署名付き APK をエクスポートしようとしました。正常にエクスポートされましたが、起動すると、アプリケーションのアクティビティ クラス ( ) が見つからないため、すぐにクラッシュしますClassNotFoundException。これは奇妙です!デバッグ モードでは正常に動作し、アプリケーションのアクティビティ クラスが存在しない場合は、コンパイルされていないはずです。どうしたの?最新かつ最高の Android 開発ツールは壊れていますか?

このソリューション(およびこれOrder and Exportも)で説明されているように、タブで遊んでみましたが、役に立ちませんでした。

私は今何をしますか?

4

4 に答える 4

9

あなたはWindows XPを実行しているので、私が助けることができるかどうかはわかりませんが(私はWindows 7 64ビットを実行しています)、「クラスへの17の未解決の参照」に関する@Boe-Devへのコメントは、私の最近の試練を思い出させましたあなたと同様のアップグレード:

次の行を に配置して解決proguard.cfgました。

-dontwarn com.bta.myapp.MyAppActivity.R**

あなたの問題が私のものと同じかどうかはわかりませんが、試してみる価値があるかもしれません。

編集: Proguard をオフにしても問題が発生することに気付きました。次のことを提案できますか?

  1. 標準 Java ビルド パスからライブラリを削除します。プロジェクト名を右クリック > [プロパティ] > [Java ビルド パス] > [ライブラリ] タブ > 「Android XX」と「Android 依存関係」以外のすべてを削除します</li>
  2. ライブラリ フォルダーの名前を「lib」から「libs」に変更します。そうすることで、フォルダー「libs」内のすべてのライブラリーが Android プラグインによって検出され、プロジェクトの「Android Dependencies」項目に追加されます。
  3. プロジェクトをクリーンアップします (Android 開発ツールがいかに予測不可能であるかを考えると、常に必要です)

それがどのように機能したか教えてください。

于 2012-06-14T20:13:50.820 に答える
2

エラーログはどうですか。ウィンドウ -> ビューの表示 -> エラー ログ。コンソール出力とは別のもので、エラー コード 1 がここに表示される傾向があります。

于 2012-06-14T18:58:24.247 に答える
1

Eclipse で ADT プラグインを再インストールしてみてください

于 2012-06-14T16:52:33.847 に答える
0

これが私のために働いた鍵でした

http://android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14

おそらくADT-15で修正され、回避策は次のとおりです。

1)各X_src要素について、それを右クリックし、[ビルドパス]>[ビルドパスから削除]を選択します。

2)ポップアップが開きます。「プロジェクトからフォルダのリンクも解除する」がチェックされていることを確認してから、それを受け入れます。

ライブラリコードにデバッグすることはできますが、それらのプロジェクトでブレークポイントを管理してから、クラスファイルタブでコードをステップ実行する必要があります。

于 2012-08-20T02:42:31.000 に答える