2015-03-31 76 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文件。

相關問題