2015-04-26 97 views
4

在我的項目的一個模塊的build.gradle很簡單:如何在Android Studio中從Proguard中排除外部庫jar?

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') 
} 

然而,當我建立它,它未能找到在外部庫jsoup-1.8.2.jar符號。

由於timsvc是我的一個模塊,有自己的build.gradle和proguard.cfg,我可以控制它的縮小級別,所以我沒有任何問題。

但我不能這樣做jsoup-1.8.2.jar,因爲它是一個外部提供的罐子。

有沒有辦法在Android Studio中將其從Proguard中排除?

如果是這樣,我該如何做到這一點?

+0

您是否試過'-keep class org.jsoup。** {*; }'其中** org.jsoup **指代包名稱 – Fer

+0

[如何使Proguard忽略外部庫?](http://stackoverflow.com/questions/7721397/how-to-make-proguard-ignore - 外部庫) –

+0

可能的重複http://stackoverflow.com/questions/6870773/android-proguard-with-external-jar/6870844#6870844 –

回答

1

最好的辦法是看圖書館的文檔和自述頁面(如Github)。

但是在通用中,您可以爲您的proguard配置文件添加-keep選項,以用於這些外部jar中的類。例如:

-keep class example.** { *; } 
+0

請回復,在android工作室在哪裏添加這些行,在' proguard-project.txt'或'proguard-rules.pro'? –

+1

@ShirishHerwade,Proguard根據'proguard-rules.pro'實現配置。 –