1

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

-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/ ,!class/merging/

-keep 公共类 * 扩展 android.app.Activity -keep 公共类 * 扩展 android.app.Application -keep 公共类 * 扩展 android.app.Service -keep 公共类 * 扩展 android.content.BroadcastReceiver -keep 公共类 * 扩展android.content.ContentProvider -keep 公共类 * 扩展 android.app.backup.BackupAgentHelper -keep 公共类 * 扩展 android.preference.Preference -keep 公共类 com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * { native ; }

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

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

-keepclassmembers 类 * 扩展 android.app.Activity { public void *(android.view.View); }

-keepclassmembers enum * { public static * [] values(); 公共静态 * valueOf(java.lang.String); }

-keep 类 * 实现 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(本机方法) [2012-12-27 14:23:16 - FlashActivity] 在 java.io.FileInputStream .(未知来源)[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)

从输出来看,我会说proguard.txt我的应用程序bin文件夹中应该有一个文件,但没有。

如果我制作,这个文件应该包含什么?

4

4 回答 4

3

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

http://tools.android.com/recent/proguardimprovements

于 2012-12-27T14:34:51.503 回答
2

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

android update project --path MyProjectDirectory

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

于 2012-12-29T10:23:31.817 回答
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所在的位置。

于 2015-04-16T12:20:52.583 回答
0
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt')
    }
}

确保 minifyEnabled 为 false

于 2015-10-22T07:22:06.110 回答