添加Admob后意外的Proguard错误

时间:2015-11-28 05:39:08

标签: android admob android-proguard

我最后一天在我的项目中添加了admob,并根据Admob在文件中提供的文档添加了proguard参数。我们的admob位于另一个Library项目文件夹中,这是我们其他25个项目共享和共同的,我们这样做了在一个项目中更改很容易,只需导出所需的详细信息.Google play服务再次在此Library项目中调用。 在导出时,我们正在低于错误

[2015-11-28 10:59:45 - AppName] Dx Uncaught translation error: com.android.dx.cf.code.SimException: local 0000: invalid
[2015-11-28 10:59:45 - AppName] Dx 1 error; aborting
[2015-11-28 10:59:45 - AppName] Conversion to Dalvik format failed with error 1

以下是我们的支持者看起来像

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

-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

-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.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keep public class com.google.android.gms.ads.** { public *; }

-keep public class com.google.ads.** { public *; }


-keep class com.vungle.** { public *; }
-keep class javax.inject.*
-keepattributes *Annotation*
-keepattributes Signature
-keep class dagger.*

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


-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 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 * extends android.preference.PreferenceActivity {
    public void settings_activity(android.preference.PreferenceActivity );
}

为什么会这样?

1 个答案:

答案 0 :(得分:0)

这是Play服务的一个问题。

目前在此报告https://code.google.com/p/android/issues/detail?id=187483,将在以后的版本中修复。

该主题还有一些可能的解决方案:

  1. 使用您使用的Play服务版本重新编译外部库
  2. 禁用混淆