Android - 如何配置proguard

时间:2014-10-23 08:14:54

标签: android proguard startapp

我使用StartApp添加广告,使用proguard。 当我运行apk文件(在导出应用程序之后)时,它强制关闭应用程序。

我尝试使用StartApp,而不是使用proguard,apk文件没有错误。

另一种方式,我尝试使用proguard,不使用StartApp,它也没有错误。

请告诉我原因?

这是proguard-android-optimize.txt

-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>;
}
-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames 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 *;
}

这是project.properties:

proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
# Project target.
target=android-20

这是在Manifest文件中插入StartApp的代码:

 <activity
            android:name="com.startapp.android.publish.list3d.List3DActivity"
            android:theme="@android:style/Theme" />
        <activity
            android:name="com.startapp.android.publish.AppWallActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:theme="@android:style/Theme.Translucent" />

这是java类中的代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        StartAppSDK.init(this, "my developer ID", "my app ID", false);
        setContentView(R.layout.activity_main);
        StartAppAd.showSlider(this);
        StartAppAd.showSplash(this, savedInstanceState);
        }

1 个答案:

答案 0 :(得分:3)

你应该使用proguard-android.txt文件并添加以下代码

或者,如果您使用的是android studio,那么请将以下行添加到proguard-rules.pro

-keep class com.startapp.** {*;}
-keepattributes Exceptions, InnerClasses, Signature, Deprecated, SourceFile,LineNumberTable, *Annotation*, EnclosingMethod
-dontwarn android.webkit.JavascriptInterface