似乎Proguard在重命名/重新包裝類時不會嘗試避免命名與庫JAR中的類發生衝突。這是正確的,還是我沒有正確配置它?Proguard:避免命名與預混淆庫JAR的衝突
我模糊了一個使用最新Google AdMob SDK的Android應用程序。以前,我使用舊的AdMob SDK時沒有問題。新的SDK JAR文件包含一些被混淆的類。其中一個類是a.class
,默認爲/ unnamed包。當我混淆我的應用程序時,Proguard儘管已將AdMob JAR作爲庫JAR讀入(因此它應該知道這會導致碰撞),但在未命名的程序包中,我的一個類還重命名爲/ a.class
。可以預料的是,當dx
工具嘗試將這兩個命名相同的類組合在一個.dex文件中時,我的構建失敗。
作爲一種解決方法,我重新配置了Proguard,以便它將所有類移動到命名包(只是一個字母)以避免與Google類發生衝突,但我很想知道是否有更好的解決方案或者如果這是Proguard當前版本(4.6)的限制?
不確定Android標記是否必要。我在Android項目上遇到了這個問題,但它不是針對Android的。 – 2011-04-26 11:15:56