0
proguardを使用して実行可能なJARファイルを作成しようとしています。 Eclipseを使用してJARをエクスポートすると、すべて正常に動作し、すばらしいJARファイルがあります。マイProGuardの-project.txtとしてである私は、コマンドラインとコマンド実行可能なJARファイルでProguardを使用する
java -jar ${ANDROID_SDK}/lib/proguard.jar @proguard-project.txt
を使用しますが、私が作成したJARを実行しようとすると、私は応答に
no main manifest attribute
を取得obfusicateする
続く:
-injars bin/classes
-injars libs
-outjars bin/classes_processed.jar
-libraryjars proguard/android.jar
-dontwarn java.**
-keep class java.**
-dontwarn javax.**
-keep class javax.**
-dontwarn android.**
-keep class android.**
-dontwarn com.sun.**
-keep class com.sun.**
-dontwarn java.awt.**
-dontwarn java.beans.Beans
-dontwarn javax.security.**
-keep class javamail.** {*;}
-keep class javax.mail.** {*;}
-keep class javax.activation.** {*;}
-keep class com.sun.mail.dsn.** {*;}
-keep class com.sun.mail.handlers.** {*;}
-keep class com.sun.mail.smtp.** {*;}
-keep class com.sun.mail.util.** {*;}
-keep class mailcap.** {*;}
-keep class mimetypes.** {*;}
-keep class myjava.awt.datatransfer.** {*;}
-keep class org.apache.harmony.awt.** {*;}
-keep class org.apache.harmony.misc.** {*;}
-dontnote
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keep public class com.app.main {
public static void main(java.lang.String[]);
}
-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.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
こんにちは、私はこれを試しましたが、私はまだ同じ結果を得る。私はメインクラスを難読化していてもそれを難読化せずに試しましたが、別の結果が得られました。 manifest.mfファイルがわかりにくくなる前に マニフェスト - バージョン:1.0 クラスパス:。 メインクラス:com.app.main 私は難読化と私はJARを抽出し、それが今 マニフェスト・バージョンのように見えるMANIFEST.MFファイル開くためのWinRARを使用した後:1.0 初出-から:1.7.0_95( Oracle Corporation) –
Ah私は、META-INFフォルダではなく、抽出JARのトップレベルでManifest.MFを見つけました。これは問題になる可能性がありますか? –
はい、これはMETA-INFディレクトリになければなりません。それ以外の場合は有効なマニフェストとして認識されません。私はこれに言及するのを忘れてしまったので、代わりに-injars path/to/your/resourceディレクトリが必要です。これには、期待されるディレクトリ構造のMETA-INF/Manifest.MFファイルが含まれています。 –