簡體   English   中英

如何以OS獨立的方式在Proguard配置中包含rt.jar / classes.jar?

[英]How to include rt.jar/classes.jar in Proguard configuration in an OS independant way?

如Proguard的故障排除頁面所述

在MacOS X中,運行時類可能與大多數其他平台上的位置不同。 然后,您必須調整配置,將路徑<java.home>/lib/rt.jar<java.home>/../Classes/classes.jar

因此,例如,在非Mac環境中,Proguard配置中可能包含以下內容:

-libraryjars <java.home>/lib/rt.jar

但是對於Mac環境,您將指向classes.jar


如果僅在Mac上進行過開發,這很好,但是如果將此代碼簽入版本控制並由開發人員在多個OS上以及在運行其他OS的構建服務器上共享,則它需要更加靈活。

是否可以在Proguard中將其配置為可以運行,而不管它在什么操作系統上運行,而無需代碼用戶更改文件系統

您可以定義一個取決於環境的系統變量,並使用它:

-libraryjars <runtime.jar>

但是,如果您正在為Android開發:

  • 您不應引用rt.jarclasses.jar ,因為它們包含許多Android運行時中不存在的Java運行時類。
  • 您不應該指定-libraryjars ,因為Ant / Eclipse / Gradle構建過程已經為您自動指定了所有必需的-injars-outjars-libraryjars

如果看到有關缺少Java運行時類的警告,則應考慮使用-dontwarn javax.**類的選項。 請參閱ProGuard手冊>故障排除> 警告:找不到引用的類

暫無
暫無

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

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