Proguard 返回错误 1 - 项目 bin 文件夹中没有 proguard.txt 文件?
Posted
技术标签:
【中文标题】Proguard 返回错误 1 - 项目 bin 文件夹中没有 proguard.txt 文件?【英文标题】:Proguard returned error 1 - no proguard.txt file in project bin folder? 【发布时间】:2012-12-12 22:29:30 【问题描述】:我刚开始使用 proguard,并使用在此站点上找到的文件作为我的 proguard.cfg 文件:
-优化通过 5 -dontusemixedcase类名 -dontskipnonpubliclibraryclasses -dontpreverify -详细 -优化 !code/simplification/arithmetic,!field/,!class/merging/
-保持公共类 * 扩展 android.app.Activity -保持公共类 * 扩展 android.app.Application -keep public class * 扩展 android.app.Service -保持公共类 * 扩展 android.content.BroadcastReceiver -保持公共类 * 扩展 android.content.ContentProvider -保持公共类 * 扩展 android.app.backup.BackupAgentHelper -keep public class * 扩展 android.preference.Preference -保持公共类com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * 本国的 ;
-keepclasseswithmembers class * 公共(android.content.Context,android.util.AttributeSet);
-keepclasseswithmembers class * 公共(android.content.Context,android.util.AttributeSet,int);
-keepclassmembers class * extends android.app.Activity public void *(android.view.View);
-keepclassmembers 枚举 * 公共静态 *[] 值(); 公共静态 * valueOf(java.lang.String);
-keep class * 实现 android.os.Parcelable public static final android.os.Parcelable$Creator *;
当我使用 eclipse 进行签名 apk 导出的最后一步时,出现错误:
Proguard 返回错误代码 1。请参阅控制台
控制台说明:
Proguard 返回错误代码 1。请参阅控制台 [2012-12-27 14:23:16 - FlashActivity] java.io.FileNotFoundException: C:\Users\Liam\workspace\FlashActivity\bin\proguard.txt (系统 找不到指定的文件)[2012-12-27 14:23:16 - FlashActivity] 在 java.io.FileInputStream.open(Native Method) [2012-12-27 14:23:16 - FlashActivity] 在 java.io.FileInputStream.(Unknown Source) [2012-12-27 14:23:16 - FlashActivity] 在 java.io.FileReader.(未知来源) [2012-12-27 14:23:16 - FlashActivity] 在 proguard.FileWordReader.(FileWordReader.java:39) [2012-12-27 14:23:16 - FlashActivity] 在 proguard.ConfigurationParser.parseIncludeArgument(ConfigurationParser.java:217) [2012-12-27 14:23:16 - FlashActivity] 在 proguard.ConfigurationParser.parse(ConfigurationParser.java:124) [2012-12-27 14:23:16 - FlashActivity] 在 proguard.ProGuard.main(ProGuard.java:484)
从输出来看,我会说我的应用程序bin
文件夹中应该有一个proguard.txt
文件,但没有。
如果我做这个文件应该包含什么?
【问题讨论】:
【参考方案1】:从 adt 17 开始,proguard 配置文件不是 proguard.cfg 而是 proguard-project.txt
见http://tools.android.com/recent/proguardimprovements
【讨论】:
我更改了 project.properties 文件,但仍然出现完全相同的错误【参考方案2】:您应该使用交互式 android
工具更新您的 Android SDK,然后还使用更新您的项目
android update project --path MyProjectDirectory
这应该创建proguard-project.txt
并更新project.properties
以指向该文件。
【讨论】:
【参考方案3】:当eclipse无法从sdk目录读取progaurd文件时也会出现这个问题。
对我来说,dump.txt 文件出现了错误,即使它存在于我的项目中。
我通过更改 project.properties 文件中的 sdk 路径解决了这个问题
来自
proguard.config=$sdk.dir/tools/proguard/proguard-android.txt:proguard-project.txt
到
progaurd.config=D:\Backup\Desktops\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk\tools\proguard\proguard-android.txt:proguard-project.txt
我的 sdk 所在的位置。
【讨论】:
【参考方案4】:buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
确保 minifyEnabled 为 false
【讨论】:
以上是关于Proguard 返回错误 1 - 项目 bin 文件夹中没有 proguard.txt 文件?的主要内容,如果未能解决你的问题,请参考以下文章
Proguard 使用 Google Play 服务库返回错误
带有外部 jar 的 Proguard 错误 - 返回错误代码 1
Android - Proguard 未使用 Joda Time jar 文件编译