簡體   English   中英

proguard 地獄 - 找不到引用的類

[英]proguard hell - can't find referenced class

所以,我發布一些軟件,但Proguard的是讓我頭疼。

當我嘗試使用 proguard 導出時,我收到很多警告,即“找不到引用的類”

例如:

[2011-08-07 17:44:37 - GAME] Warning: org.simpleframework.xml.stream.StreamReader: can't find referenced class javax.xml.stream.events.XMLEvent
[2011-08-07 17:44:37 - GAME] Warning: there were 52 unresolved references to classes or interfaces.
[2011-08-07 17:44:37 - GAME]          You may need to specify additional library jars (using '-libraryjars'),
[2011-08-07 17:44:37 - GAME]          or perhaps the '-dontskipnonpubliclibraryclasses' option.
[2011-08-07 17:44:37 - GAME] java.io.IOException: Please correct the above warnings first.
[ 

這些警告似乎與 simpleframework 相關,因此在我的 proguard 配置文件中,我添加了以下內容:

-libraryjars pathtoprojecttolibs\simple-xml-2.4.jar

其中pathtoprojecttolibs是我的項目引用的 jar 的路徑。

這沒什么區別。

如果 simpleframework 引用 javax,我可以告訴 proguard 也忽略它嗎??

有任何想法嗎?

代碼中的org.simpleframework.xml.stream.StreamReader指的是javax.xml.stream.events.XMLEvent 后一個類是 Java 運行時 ( rt.jar ) 的一部分,但不是 Android 運行時 ( android.jar ) 的一部分,因此 ProGuard 會警告某些內容可能已損壞。 如果您確定您的應用程序無論如何都可以工作,則可以指定

-dontwarn javax.xml.stream.events.**

ProGuard 地獄?

就我而言,根本原因就在這里 您可以跳過這些警告:

-dontwarn org.simpleframework.xml.stream.**

原答案在這里

出現此錯誤是因為您使用的庫依賴於其他未真正使用的庫,但 Proguard 正在尋找它們。
-dontwarn行添加到 Android 項目中的proguard-rules.pro文件以禁用此警告。

在此處輸入圖片說明

您可以在錯誤的堆棧跟蹤中找到需要添加到 proguard-rules.pro 中的依賴項。

我的魔法鑰匙解決了我的搜索時間:將此添加到 progruard-android.txt

-dontskipnonpubliclibraryclassmembers

您應該將其包含在您的 Proguard 配置中:

-dontskipnonpubliclibraryclasses

我認為這是一個邊緣情況,但在我的情況下,我必須完全擦除我的 Jenkins proguard 上的構建文件夾,嘗試使用不再存在的舊代碼 - 以防萬一有人遇到同樣的問題。

在我的情況下,我沒有改變任何東西,警告開始顯示。 問題在於損壞的 gradle 緩存。 檢查我的另一個答案 我與此分享,因為我花了 2 個小時才找到問題:]

將此行添加到 gradle 腳本目錄中的proguard-rules.pro文件中:

-dontwarn package.class.name.**

其中package.class.name是附加了 jar 文件的類名的包名。

例如:

-dontwarn com.myexternalclass.utils.**

唔。 閱讀該警告似乎您嘗試使用的庫依賴於 javax.xml.stream.events。 我認為命名空間實際上根本沒有包含在 android 中。 (見包裹索引)。

嘗試在不使用 proguard 的情況下將其部署到模擬器,看看它是否有效。 如果那個警告是准確的,我的猜測是不會的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM