Android 升级到Proguard 4.8后无法导出应用程序
我刚刚将我的Android SDK、ADT和Proguard升级到最新和最棒的版本 我的项目在调试模式下编译构建并运行良好,但当我尝试导出已签名的版本APK时,我从导出向导收到一个错误,Eclipse控制台上没有任何错误日志消息*强> 如果我尝试通过Android 升级到Proguard 4.8后无法导出应用程序,android,eclipse,adt,proguard,android-library,Android,Eclipse,Adt,Proguard,Android Library,我刚刚将我的Android SDK、ADT和Proguard升级到最新和最棒的版本 我的项目在调试模式下编译构建并运行良好,但当我尝试导出已签名的版本APK时,我从导出向导收到一个错误,Eclipse控制台上没有任何错误日志消息* 如果我尝试通过Window->Show view->error log查看错误日志,我看到的都是相同的: 我不知道该怎么办,因为Eclipse和Proguard都不会给出任何关于问题可能是什么的提示 在最近的升级之前,我的项目导出良好。没有生成警告。没有线头警告
Window->Show view->error log查看错误日志,我看到的都是相同的:
我不知道该怎么办,因为Eclipse和Proguard都不会给出任何关于问题可能是什么的提示
在最近的升级之前,我的项目导出良好。没有生成警告。没有线头警告
我正在${sdk.dir}\tools\proguard\proguard Android.txt
中使用Android的标准配置文件:
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontoptimize
-dontpreverify
-keepattributes *Annotation*
-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.BackupAgent
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-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*(...);
}
-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 **.R$* {
public static <fields>;
}
-dontwarn android.support.**
以前有人见过这个问题吗?
你知道怎么解决这个问题吗
取得了一些进展?自从升级后,我第一次能够导出已签名的APK:
我运行CCleaner清理Windows系统中的所有临时文件和缓存
然后我重新启动了Windows李>
但令我沮丧的是,下次我再次尝试导出已签名的APK时,我收到了相同的无法导出应用程序,并且没有控制台消息又来了
现在我很清楚Android开发工具已经变得不稳定了。我不能每次导出已签名的APK时都运行CCleaner并重新启动Windows。我不在乎是谁的错:Android SDK?ADT插件?前卫
我现在该怎么办
还有什么进展吗?我尝试在Proguard关闭的情况下导出已签名的APK。它导出了OK,但当我启动它时,它会因为找不到应用程序的活动类而立即崩溃(ClassNotFoundException
)。这太奇怪了!它在调试模式下运行良好,如果应用程序的活动类不存在,它就不应该编译!发生什么事?最新和最伟大的Android开发工具是否已经损坏
我试着按(和)中所述使用订单和导出选项卡,但没有效果
现在该怎么办?尝试在eclipse中重新安装ADT插件错误日志如何。窗口->显示视图->错误日志。是独立于控制台输出的,错误代码1往往会显示在这里。您运行的是Windows XP,因此我不确定我是否能提供帮助(我运行的是64位Windows 7),但您对@Boe Dev关于“17个未解决的类引用”的评论让我想起了我最近经历的一次类似于您的升级:
I通过在proguard.cfg
中放置以下行:
-dontwarn com.bta.myapp.MyAppActivity.R**
不知道你的问题是否和我的一样,但也许值得一试
编辑:请注意,即使关闭Proguard,您也会遇到问题,我可以提出以下建议吗
从标准Java构建路径中删除库:右键单击项目名称>属性>Java构建路径>选项卡库>删除除“Android X.X”和“Android依赖项”之外的所有内容
将库文件夹从“lib”重命名为“libs”。这样,Android插件就可以找到文件夹“libs”中的所有库,并将它们添加到项目的“Android依赖项”项中
清理项目(考虑到Android开发工具的不可预测性,总是必要的)
让我们知道它是如何工作的。这是对我有用的钥匙
假设在ADT-15中已修复,解决方法是
1) 对于每个X_src元素,右键单击它,然后单击Build Path>Remove from Build Path
2) 将打开一个弹出窗口。确保选中“还取消文件夹与项目的链接”,然后接受它
您仍然可以调试到库代码中,但需要管理这些项目中的断点,然后在类文件选项卡中单步执行代码。LOL.看起来像这样。也许OP也应该升级他的Eclipse?他没有提供任何关于日食版本的信息。@BillTheApe不是巫毒。前进地狱:@BillTheApe我的日食是3.6.2。这是个问题吗?如何重新安装我的ADT插件?我启动了Android SDK管理器,它显示,Android SDK工具
Rev 19和Android SDK平台工具
Rev 11已经安装并更新。如何使它们重新安装?请转到“帮助”>“关于eclipse”>“安装详细信息”,然后选择“ADT部件”并将其卸载。@Boe Dev谢谢。我就是这么做的,我不再得到“无法导出应用程序”,但现在我得到了一个以前从未见过的新错误Proguard返回,错误代码为1。请参见控制台
,控制台显示17个未解析的类引用。当然,所有这些课程都存在,所以我不知道它为什么会失败,以及从这里可以走到哪里。建议?谢谢你给了我片刻的希望。错误日志没有提供进一步的信息(请参阅原始帖子中的屏幕截图更新)。它在关闭proguard的情况下导出正常吗?是的,它在关闭proguard的情况下导出正常。但当我启动它时,它会因为找不到应用程序的活动类而立即崩溃(ClassNotFoundException
)。这太奇怪了!!!它在调试模式下运行良好,如果应用程序的活动类不存在,它就不应该编译!发生什么事?最新和最棒的Android开发工具坏了吗?感谢+1让我有了片刻的希望。您的解决方案对我的情况没有帮助,但我在那之后所做的工作使我能够导出一个签名的APK,这是我升级后的第一次!以下是我所做的:(1)我运行了CCleaner来清理Windows系统中的所有临时文件和缓存,(2)然后我重新启动了Windows。成功了!但令我沮丧的是,下一次尝试导出时,我收到了相同的导出应用程序失败的消息,没有控制台消息!。现在我很清楚Android开发工具已经变得不稳定了。你怎么办
-dontwarn com.bta.myapp.MyAppActivity.R**