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 文件编译

新(空白)项目上的尴尬 Proguard 错误

proguard android studio 中的错误,无法使用 minifyenabled true 构建我的项目

Gson.toJson 返回 null [ProGuard 问题]