2015-03-31 80 views
7

我已经创建了.aar文件.aar文件(包含资源&可绘)一个Android库项目的真实进行模糊

buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

但是,当我运行提到的gradle命令与minify enabled = true时,我得到java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?

这个错误指向什么d如何混淆库.aar文件?

问候

+0

它不工作没有proguard和minifyEnabled? – belurd 2015-06-04 11:38:18

回答

0

两个建议:

  1. 请确保该文件库模块中存在: proguard-rules.pro。
  2. 请尝试运行“./gradlew:mylib:assembleRelease”,将 “mylib”替换为您的库模块名称。
2

Proguard削减未使用的类。库是独立的产品,并有一些特定的入口点,不应该被混淆。所以你需要添加规则来保持这个入口点。规则lookes这样的:

-keep class packagename {public *;} 
0
  1. 复制library.pro文件,从这个位置你的库项目:
    ...\android-sdk\tools\proguard\examples
  2. 评论从Android Studio中建立时这些线路,它应该是可能保持/更新时在命令行中建设:
    -injars in.jar 
    -outjars out.jar 
    -libraryjars /lib/rt.jar
  3. 更新库项目build.gradle文件中使用library.pro

    release { 
        minifyEnabled true 
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'library.pro' 
    }
  4. 同步并生成项目,它现在应该生成一个模糊的AAR文件。

相关问题