我第一次使用ProGuard。我在我的項目的根包中有我的所有活動,碎片,列表碎片等等(我試圖移動它們但沒有任何區別)。我使用標準proguard-android.txt
加上proguard-project.txt
,我可以放任何我想要的東西,對這些類沒有什麼不同,因爲它們只是被忽略。使用ProGuard構建忽略android.app。*類
他們不是在usage.txt
,seeds.txt
,mapping.txt
或dump.txt
上市了,他們不是在DEX(庫班看起來雖然正確對待)。
我試圖-keep public class <my.project.rootpackage>.MyActivity
一個對每個忽略類,以及許多其他的事情,最後一個是:
-dontshrink
-dontoptimize
-dontobfuscate
-keep public class * extends android.app.Application
-keep public class * extends android.support.v4.app.FragmentActivity
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v4.app.ListFragment
-keep public class * extends android.preference.PreferenceActivity
我可以使用,同時學習簡單的項目,但我不明白爲什麼它不該畢竟ProGuard似乎很好地處理了圖書館的工作。當然,該項目在調試模式下工作時效果很好。
ProGuard更新至v4.8,Eclipse 3.7.2,更新了ADT和SDK,項目目標API 15,沒有來自ProGuard的消息。
我錯過了什麼?我承認我從未清楚構建過程。我必須學習Ant嗎?
編輯:當它不工作(即ProGuard的完成有錯誤),我經常得到這樣的錯誤:
警告:my.project.package.ClassA:可以找到引用類my.project.package.ClassB
請注意,這兩個類也可以在同一個包中。
你在做發佈版本還是調試版本?進行調試構建時,ProGuard不運行,僅用於發佈。 – twaddington
@twaddington發佈版本,ProGuard在其他類上工作。這就是我說的那些被跳過的東西。 – bigstones