web-dev-qa-db-ja.com

廃止されたproguardファイル。 -keepclasseswithmembernamesの代わりに-keepclasseswithmembersを使用します

Androidプロジェクトのproguard.cfgファイルで次のエラーが発生しました。このエラーの内容がわかりません。何か考えはありますか?

26
Khawar Raza

で試してみてください

プロジェクトをクリーンアップしてビルドし、[問題]ビューでエラーマーカーを選択して、[削除]を押します。

次のリンクを参照してください

http://groups.google.com/group/Android-developers/browse_thread/thread/7606320e664fec9b

16

これはSDKツールv11のバグです。 http://code.google.com/p/Android/issues/detail?id=16384

Lintがエラーを生成すると、

  • lint警告ビュー([ウィンドウ]> [ビューの表示]> [その他]> Android> Lint警告))に移動し、エラーをダブルクリックしてproguard.cfgを変更します

  • 「keepclasseswithmembernames」の名前を「keepclasseswithmembers」に変更すると、エラーが表示されて保存されます。

  • lintを再度実行します(Lint警告ビューで[更新]をクリックします)

  • 後続の行にさらに警告が表示される場合は、名前の変更を繰り返します。

こんな感じに変えました。

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-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 com.Android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
    native <methods>;
}

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

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

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

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