7

使用 Proguard(通过 Eclipse 中的 ADT)导出 Android 应用程序时出现以下错误。

“proguard.ParseException: 期望在 'name' 之前打开 '(' 或分隔符 ';'”

我看到通过升级 Proguard 和 sdk 解决了其他 ProGuard 解析错误问题;但是,在所有升级之后,这里没有运气。有人见过这个/解决过这个吗?预先感谢您的帮助!

环境

ADT 22.0.1

Eclipse SDK 4.2.2

Android SDK 4.2,SDK 工具第 22 版

Proguard v4.9

控制台日志

Proguard 返回错误代码 1。请参阅控制台 proguard.ParseException: Expecting opening '(' or separator ';' before 'name' in line 155 of file '~/project/bin/proguard.txt',包括在参数号 4 中proguard.ConfigurationParser.parseMemberSpecificationArguments(ConfigurationParser.java:966) 在 proguard.ConfigurationParser.parseClassSpecificationArguments(ConfigurationParser.java:729) 在 proguard.ConfigurationParser.parseKeepClassSpecificationArguments(ConfigurationParser.java:516) 在 proguard.ConfigurationParser.parse(ConfigurationParser.java:165) ) 在 proguard.ProGuard.main(ProGuard.java:476)

项目55号线

-keepclassmembers 类 * { *方法名(...); }

proguard.cfg

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

-assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); 公共静态 int v(...); 公共静态 int d(...); }

-printmapping out.map

-renamesourcefileattribute SourceFile -keepattributes SourceFile,LineNumberTable

-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 ; }

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

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

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

-keep 类 * 实现 android.os.Parcelable { public static final android.os.Parcelable$Creator *; }

-keepclassmembers 类 * 扩展 android.content.Context { public void *(android.view.View); 公共无效*(android.view.MenuItem);}

-keepclassmembers 类 * .R$ { public static ; }

4

1 回答 1

0

我认为问题可能是:

-keepclasseswithmembernames class * { native ; }

你可以试试:

-keepclasseswithmembernames class * { 
    native <methods>; 
}
于 2015-05-21T11:39:16.087 回答