我想使用Proguard主要是出于混淆的原因.
我的问题是我有三个库,Twitter4J和两个路标库.当我尝试创建签名的APK时,这些库会导致错误.为了克服这个问题,我在proguard.config文件中添加了以下内容......
-dontwarn org.apache.commons.codec.binary.**
-dontwarn org.slf4j.**
-dontwarn com.sun.syndication.io.**
-dontwarn com.sun.syndication.feed.synd.*
Run Code Online (Sandbox Code Playgroud)
虽然这摆脱了控制台中的错误,当我将签名的APK加载到我的手机上时,它立即崩溃了.DDMS说这是由于Twitter4J中没有找到的课程.
摆脱"dontwarns"上述情况并没有帮助.也没有添加dontshrink dontoptimise.
我希望Proguard完全忽略这些库(因为它们无论如何都是开源的).这可能吗?
我在Android应用http://code.google.com/p/dalvik/wiki/JavaxPackages中看到了一篇关于包含其他javax.*软件包的文章 .
我想做同样的事情,但是使用Eclipse.谁能帮我弄明白怎么做?
在build.gradle我的项目中的一个模块是非常简单的:
apply plugin: 'com.android.library'
android {
compileSdkVersion 8
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 8
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
}
}
}
dependencies {
compile project(':timsvc')
compile files('libs/jsoup-1.8.2.jar')
}
Run Code Online (Sandbox Code Playgroud)
但是,当我构建它时,它无法在外部库中找到符号jsoup-1.8.2.jar。
因为timsvc是我的一个模块,有自己的 build.gradle 和 proguard.cfg,我可以控制它的缩小级别,所以我没有任何问题。
但我不能这样做,jsoup-1.8.2.jar因为它是一个外部提供的罐子。
有没有办法将它从 Android Studio 中的 Proguard 中排除?
如果是这样,我该如何实现?