[英]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.jar
或classes.jar
,因為它們包含許多Android運行時中不存在的Java運行時類。 -libraryjars
,因為Ant / Eclipse / Gradle構建過程已經為您自動指定了所有必需的-injars
, -outjars
和-libraryjars
。 如果看到有關缺少Java運行時類的警告,則應考慮使用-dontwarn javax.**
類的選項。 請參閱ProGuard手冊>故障排除> 警告:找不到引用的類 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.