Proguard返回错误1 - 项目bin文件夹中没有proguard.txt文件?

时间:2012-12-27 14:30:13

标签: android proguard

我刚开始使用proguard,并使用此网站上的文件作为我的proguard.cfg文件:

  

- 优化通过5   -dontusemixedcaseclassnames   -dontskipnonpubliclibraryclasses   -dontpreverify   -verbose   -optimizations!code / simplifiedification / arithmetic,!field / ,! class / merge /

     

-keep public class * extends android.app.Activity   -keep public class *扩展android.app.Application   -keep public class *扩展android.app.Service   -keep public class *扩展了android.content.BroadcastReceiver   -keep public class *扩展了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

     

-keepclasseswithmembernames class * {       原生的}

     

-keepclasseswithmembers class * {       public(android.content.Context,android.util.AttributeSet); }

     

-keepclasseswithmembers class * {       public(android.content.Context,android.util.AttributeSet,int); }

     

-keepclassmembers class * extends android.app.Activity {public void *(android.view.View); }

     

-keepclassmembers枚举* {       public static * [] values();       public static * 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]     at java.io.FileInputStream.open(Native Method)[2012-12-27 14:23:16 -   java.io.FileInputStream中的FlashActivity]。(未知来源)   [2012-12-27 14:23:16 - FlashActivity] at   java.io.FileReader。(未知来源)[2012-12-27 14:23:16 -   FlashActivity]   proguard.FileWordReader。(FileWordReader.java:39)[2012-12-27   14:23:16 - FlashActivity] at   proguard.ConfigurationParser.parseIncludeArgument(ConfigurationParser.java:217)   [2012-12-27 14:23:16 - FlashActivity] at   proguard.ConfigurationParser.parse(ConfigurationParser.java:124)   [2012-12-27 14:23:16 - FlashActivity] at   proguard.ProGuard.main(ProGuard.java:484)

根据输出判断,我会说我的应用proguard.txt文件夹中应该有一个bin文件,而且没有。{/ p>

如果我这样做,该文件应包含什么内容?

4 个答案:

答案 0 :(得分:3)

从第17页开始,proguard配置文件不是proguard.cfg而是proguard-project.txt

请参阅http://tools.android.com/recent/proguardimprovements

答案 1 :(得分:2)

您应该使用交互式android工具更新Android SDK,然后使用

更新项目
android update project --path MyProjectDirectory

这应创建proguard-project.txt并更新project.properties以指向此文件。

答案 2 :(得分:0)

当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所在的地方。

答案 3 :(得分:0)

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt')
    }
}

确保minifyEnabled为false