我一直在尝试使用Proguard
生成一个APK,每次出现此错误。它警告我一些我无法找到的内部类别,并且名称似乎被混淆如下:
类错误:(b.a.a.a.a.b.o)
这是我的proguard文件:
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-verbose
-dontpreverify
#-dontshrink
#-dontoptimize
-keepattributes *Annotation*, Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable, LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations, RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, AnnotationDefault, InnerClasses
-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 class android.content.Context {
public java.io.File getExternalCacheDir();
}
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-dontwarn java.awt.**
-keep class java.awt.** { *; }
-dontwarn android.support.v4.**
-keep class android.support.v4.** { *; }
-dontwarn com.viewpagerindicator.**
# Allow obfuscation of android.support.v7.internal.view.menu.**
# to avoid problem on Samsung 4.2.2 devices with appcompat v21
# see https://code.google.com/p/android/issues/detail?id=78377
# see http://stackoverflow.com/questions/24809580/noclassdeffounderror-android-support-v7-internal-view-menu-menubuilder
-keep class !android.support.v7.internal.view.menu.*MenuBuilder*, android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
##################
#.___ My project name __.#
##################
-keep public class com.myprojectname.** { public *; }
-dontwarn com.myprojectname.**
##################
#.___ Amplitude __.#
##################
-dontwarn okio.**
-keep class okio.** { *; }
#-dontwarn android.util.FloatMath
-keep class android.util.FloatMath { *; }
##################
#.___ Glide __.#
##################
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
##################
#.___ JavaCV __.#
##################
-dontwarn org.bytedeco.javacv.**
-keep class org.bytedeco.javacv.** { *; }
-dontwarn org.bytedeco.javacpp.**
-keep class org.bytedeco.javacpp.** { *; }
-keep @org.bytedeco.javacpp.annotation interface * { *; }
-keep @org.bytedeco.javacpp.annotation.Platform public class *
-keep @interface org.bytedeco.javacpp.annotation.*,javax.inject.*
-keepclasseswithmembernames class * {
@org.bytedeco.* <fields>;
}
-keepclasseswithmembernames class * {
@org.bytedeco.* <methods>;
}
##################
#.___ Facebook __.#
##################
-keep class com.facebook.** { *; }
##################
#.___ Twitter __.#
##################
-keepclassmembers class com.mopub.** { public *; }
-keep public class com.mopub.**
-keep public class android.webkit.JavascriptInterface {}
-keep class * extends com.mopub.mobileads.CustomEventBanner {}
-keep class * extends com.mopub.mobileads.CustomEventInterstitial {}
-keep class * extends com.mopub.mobileads.CustomEventNative {}
-keep class com.google.android.gms.common.GooglePlayServicesUtil {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-dontwarn twitter4j.**
-keep class twitter4j.** { *; }
##################
#.___ MP4Parser __.#
##################
-keep class * implements com.coremedia.iso.boxes.Box { *; }
-dontwarn com.coremedia.iso.boxes.**
-keep class com.coremedia.iso.boxes.** { *; }
-dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.**
-keep class com.googlecode.mp4parser.authoring.tracks.mjpeg.** { *; }
-dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.**
-keep class com.googlecode.mp4parser.authoring.tracks.ttml.** { *; }
##################
#.___ Crashlitics __.#
##################
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
这是我得到的完整错误日志:
错误:警告:忽略匿名内部的InnerClasses属性 类错误:(b.a.a.a.a.b.o)没有出现错误:关联 EnclosingMethod属性。这堂课可能是由一个 错误:未针对现代.class文件格式的编译器。该 建议错误:解决方案是从源代码重新编译类, 使用最新的编译器错误:并且没有指定任何 &#34; -target&#34;类型选项。忽略错误的结果:此警告 这个类的反射操作会不正确 错误:表明不是内部类。错误:警告: 忽略匿名内部类的InnerClasses属性 错误:(b.a.a.a.a.b.n)没有出现错误:关联 EnclosingMethod属性。这堂课可能是由一个 错误:未针对现代.class文件格式的编译器。该 建议错误:解决方案是从源代码重新编译类, 使用最新的编译器错误:并且没有指定任何 &#34; -target&#34;类型选项。忽略错误的结果:此警告 这个类的反射操作会不正确 错误:表明不是内部类。错误:未捕获 转换错误:com.android.dx.cf.code.SimException:局部变量 type mismatch:尝试使用a设置或访问int类型的值 类型的局部变量 android.support.design.widget.CoordinatorLayout $即这是有症状的 .class转换工具忽略局部变量信息。 错误:未捕获的翻译错误:com.android.dx.cf.code.SimException: 局部变量类型不匹配:尝试设置或访问类型的值 使用int类型的局部变量浮点数。这是症状 .class忽略局部变量信息的转换工具。 错误:未捕获的翻译错误:com.android.dx.cf.code.SimException: 局部变量类型不匹配:尝试设置或访问类型的值 使用android.view.MotionEvent类型的局部变量浮点数。这是 忽略局部变量的.class转换工具的症状 信息。错误:未捕获的翻译错误: com.android.dx.cf.code.SimException:局部变量类型不匹配: 尝试使用a设置或访问java.lang.Object类型的值 long类型的局部变量。这是.class的症状 忽略局部变量信息的转换工具。 错误:未捕获的翻译错误:com.android.dx.cf.code.SimException: 局部变量类型不匹配:尝试设置或访问类型的值 java.lang.Object使用int类型的局部变量。这是 忽略局部变量的.class转换工具的症状 信息。错误:未捕获的翻译错误: com.android.dx.cf.code.SimException:局部变量类型不匹配: 尝试使用a设置或访问java.lang.Object类型的值 char类型的局部变量。这是.class的症状 忽略局部变量信息的转换工具。 错误:未捕获的翻译错误:com.android.dx.cf.code.SimException: 局部变量类型不匹配:尝试设置或访问类型的值 java.lang.Object使用int类型的局部变量。这是 忽略局部变量的.class转换工具的症状 信息。错误:未捕获的翻译错误: com.android.dx.cf.code.SimException:局部变量类型不匹配: 尝试使用a设置或访问java.lang.Object类型的值 int类型的局部变量。这是.class的症状 忽略局部变量信息的转换工具。 错误:未捕获的翻译错误:com.android.dx.cf.code.SimException: 局部变量类型不匹配:尝试设置或访问类型的值 int使用类型的局部变量 android.support.v4.hardware.display.DisplayManagerCompat。这是 忽略局部变量的.class转换工具的症状 信息。错误:将字节码转换为dex时出错:原因: java.lang.RuntimeException:翻译已被中断 错误:任务执行失败 &#39;:myprojectname:transformClassesWithDexForRelease&#39;
com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:进程&#39;命令 &#39; / usr / lib中/ JVM / JAVA -7-的openjdk-AMD64 / bin中/ JAVA&#39;&#39;完成非零 退出值2信息:BUILD FAILED
任何提示都会非常感激^ ^
答案 0 :(得分:0)
我设法通过将构建变体从发行版更改为调试来获取正确的库名称。