我刚开始使用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>
如果我这样做,该文件应包含什么内容?
答案 0 :(得分:3)
从第17页开始,proguard配置文件不是proguard.cfg而是proguard-project.txt
答案 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