1

我使用 StartApp 添加广告,anh 使用 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

这是在清单文件中插入 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);
        }
4

1 回答 1

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
于 2014-12-23T12:57:34.027 回答