我有一個Android庫項目和一個應用程序,它使用該庫項目。在應用程序的文件的build.gradle我ProGuard的混淆整個應用程序,包括庫項目代碼:Android Gradle插件:productPlavors中的runProguard?
//from the app project
buildTypes{
release {
runProguard true
proguardFile 'proguard-project.txt'
}
debug{
runProguard false
}
}
一切運作良好,的lib項目和應用項目都得到混淆就好了。 但是,我想建立我的lib項目「獨立」,所以我可以分發它沒有應用程序項目。這當然意味着它自己混淆了lib項目。
我不能使用buildTypes
代碼在lib項目build.gradle
,只是運行ProGuard的,因爲這將打破應用項目建設,因爲那時建立的應用程序將彙編的代碼agains已經混淆的lib項目做到這一點代碼... :-)
我需要的是運行ProGuard的可能性只有如果我在「獨立」模式下構建lib項目,例如通過傳遞參數或執行特殊任務。
任何人都可以指向正確的方向嗎?
你的圖書館是你的項目中的一個模塊嗎?你可以爲你的庫模塊創建一個build.gradle,它有自己的proguard配置文件。您的庫公用方法的名稱不能被混淆。 – MartinCR 2014-08-27 11:18:57
「這當然意味着對自己的lib項目進行混淆」 - 你說的是什麼?絕大多數以AAR形式發佈的Android庫項目不會被混淆。 – CommonsWare 2014-08-27 11:29:29
@CommonsWare:當然,我只能爲自己說話,而我(或:我的僱主)卻沒有通過反編譯得到我們的代碼。 – 2014-08-27 11:44:47