我在这里搜索了如何解决这个问题,而我找到的任何东西都没有帮助。我怀疑解决方案会在here,但我错了。当我启用了详细信息时,我没有在控制台中获得任何内容,因此很难确定。我可以在启用proguard的情况下导出其他项目,但不是这个特定的项目。最初,我认为它与我正在使用的opencsv jar有关,但我删除了那个jar,并在代码中删除了它的引用,我仍然得到了错误。
导出没有proguard的应用程序,应用程序本身运行正常。
注意:AlternateJavaBridgelib是我用于大多数项目的库。我没有问题在其他应用程序中使用proguard导出apks(这就是为什么我可能是opencsv jar,它是我在其他应用程序中不使用的唯一其他jar)。
这是我的proguard.cfg,以防我遗漏了一些东西:
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-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 au.com.bytecode.**
-keep public class java.beans.**
-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 *;
}
-keep class * implements java.io.Serializable {
static final long serialVersionUID;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
public boolean equals(java.lang.Object);
}
-dontwarn java.beans.**, android.support.v4.**, com.google.ads.**, android.provider.CalendarContract*, com.dropbox.client2.**,
android.view.Display, com.xiledsystems.AlternateJavaBridgelib.components.altbridge.FormFragment, android.widget.Switch, au.com.bytecode.opencsv.**
编辑:似乎proguard确实有效。由于某种原因,在proguard运行后似乎失败了。我得到了为项目生成的转储,映射,种子和使用txt文件。
答案 0 :(得分:1)
这可能是ProGuard中的一个错误,产生无效代码,然后dx会报告模糊错误。确保您使用的是最新版本的ProGuard。如果问题仍然存在,您可以在ProGuard网站上报告,或者向我发送一个允许我重现问题的项目。
(我是ProGuard的开发者)