fla*_*yte 23 java eclipse obfuscation android proguard
我在处理ProGuard和Android方面遇到了问题.
我在网上搜索了几个小时,发现了多种混淆Android应用程序的方法.现在我正在尝试一个看起来最简单的,所以:
- 我在
config.cfg
项目的根目录中创建了一个文件- 我加入
proguard.config=config.cfg
了我的project.properties
- 我使用Eclipse导出向导导出和签署.apk文件
我收到一条消息说Proguard returned with error code 1. See console
,在控制台中:
Proguard returned with error code 1. See console
Note: there were 3847 duplicate class definitions.
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
Warning: com.fasterxml.jackson.databind.ext.DOMSerializer: can't find referenced class org.w3c.dom.bootstrap.DOMImplementationRegistry
You should check if you need to specify additional program jars.
Warning: there were 4 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
Error: Please correct the above warnings first.
Run Code Online (Sandbox Code Playgroud)
即使我使用官方Proguard网站提供的配置,或默认的配置我也有错误.
这是我的自定义配置(myProject/config.cfg):
-injars bin/classes
-injars libs
-libraryjars "C:\Program Files\Android\android-sdk\platforms\android-13\android.jar"
-dontskipnonpubliclibraryclasses
-optimizationpasses 5
-printmapping map.txt
-flattenpackagehierarchy
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keep public class * extends android.app.Application
-keep public class * extends android.app.Activity
-keep public class * extends android.app.PreferenceActivity
-keep public class * extends android.view.View
-keep public class * extends android.widget.BaseAdapter
-keep public class * implements android.view.View.OnTouchListener
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * implements android.os.Parcelable {
static android.os.Parcelable$Creator CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
Run Code Online (Sandbox Code Playgroud)
我不能让它工作......任何想法将不胜感激!
注意:我使用存储在libs
项目文件夹中的Jackson JSON库
Eri*_*une 35
1)ProGuard手册>故障排除>注意:程序/库类的重复定义
Android Ant/Eclipse构建已经为您指定了-injars/-libraryjars.如果在配置中再次指定它们,ProGuard会注意到它们是重复的.所以不要指定-injars/-libraryjars.
输入代码中没有org.w3c.dom.bootstrap.DOMImplementationRegistry,但com.fasterxml.jackson.databind.ext.DOMSerializer正在使用它.如果您的应用程序仍然有效,您可以让ProGuard接受它:
-dontwarn org.w3c.dom.bootstrap.DOMImplementationRegistry
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19023 次 |
最近记录: |