Android:不混淆代码,抛出错误



我的配置如下:

project.properties :

proguard.config=${sdk.dir}/tools/proguard/proguard-project.txt
# Project target.
target=Google Inc.:Google APIs:22
android.library=false
android.library.reference.1=../../libs/facebook/facebook-android-sdk-4.2.0/facebook

proguard-project.txt:这是一个空文件,即所有内容都被注释了。

项目正常编译正确,没有错误。

当我尝试导出apk时,我在控制台看到许多错误(并且导出失败):

    Proguard returned with error code 1. See console
    Warning: com.facebook.applinks.FacebookAppLinkResolver: can't find superclass or interface bolts.AppLinkResolver
    Warning: com.facebook.applinks.FacebookAppLinkResolver$1: can't find superclass or interface bolts.Continuation
    Warning: org.apache.commons.beanutils.BeanMap$2: can't find superclass or interface org.apache.commons.collections.Transformer
    Warning: org.apache.commons.beanutils.BeanMap$3: can't find superclass or interface org.apache.commons.collections.Transformer
...

但是,如果我注释掉proguard.config=…项目线。属性,我能够成功导出而没有任何错误-但代码没有混淆。

我做错了什么?

当您在导出时看到警告时,请确保在构建路径中所有支持库都可用。你可以进一步抑制一些警告,并摆脱它-见下文。

我的支持jar也被混淆了(不确定这是否正常),导致应用程序在运行时失败,所以我必须明确地防止他们的混淆-见下文。

project.properties

proguard.config=/myapp/proguard-project.txt
target=Google Inc.:Google APIs:22
android.library=false
android.library.reference.1=../../pathToLibrary

proguard-project.properties

#To prevent a warning message:
-dontwarn org.ietf.jgss.**
#To prevent supporting jars from getting obfuscated you would need something like:
-keep class javax.** { *; }
-keep class org.** { *; }
-keep class android.** { *; }

相关内容

  • 没有找到相关文章

最新更新