添加Admob后意外的Proguard错误

问题描述 投票:0回答:1

我在项目的最后一天添加了admob,并根据Admob在文件中提供的文档添加了proguard参数。我们的admob位于另一个库项目文件夹中,这是我们其他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 );
}

为什么会这样?

android admob android-proguard
1个回答
0
投票

这是Play服务的一个问题。

目前报道https://code.google.com/p/android/issues/detail?id=187483,并将在未来版本中修复。

该线程还有一些可能的问题修复:

  1. 使用您使用的Play服务版本重新编译外部库
  2. 禁用混淆
© www.soinside.com 2019 - 2024. All rights reserved.