我需要在我的Android項目中使用Newman, StackMob’s Http Client庫。使用sbt-assembly爲紐曼,StackMob的Http客戶端庫
我使用sbt-assembly
來生成一個具有所有依賴關係的單個(超級)jar。該命令給了我一個非常大的jar文件(48mb),Android無法將其轉換爲dex。
如何添加只需要的依賴關係到我的jar庫?
我需要在我的Android項目中使用Newman, StackMob’s Http Client庫。使用sbt-assembly爲紐曼,StackMob的Http客戶端庫
我使用sbt-assembly
來生成一個具有所有依賴關係的單個(超級)jar。該命令給了我一個非常大的jar文件(48mb),Android無法將其轉換爲dex。
如何添加只需要的依賴關係到我的jar庫?
我寫了關於excluding JARs and files的sbt-assembly的自述文件中的整個部分。
當你說:
如何我只能所需的依賴添加到我的罐子庫?
sbt-assembly
中的「依賴關係」一詞通常表示相關的罐子。問題出在jar級別,你需要所有這些。你需要做的是找出*.class
未被使用的文件,並將其排除在最終的fat jar之外。 sbt-assembly
確實有可以用來忽略文件的合併策略。
但是,對於Android開發,因爲有太多的文件需要排除,所以您需要一些能自動進行分析的文件。這就是ProGuard進來的地方。這將使得產生的瓶子更小。但是它也有點巫術,因爲你可能無法確定你是否需要某個課程。如果您尚未嘗試pfn/android-sdk-plugin。它緩存ProGuard結果並使其更快。
thx回答,我會試試 另外一個問題是,通過使用sbt程序集,它添加到我的胖jar所有的依賴關係和一個更多的scala庫,我看到很多例子ow排除向jar中添加scala但沒有人幫助我誰可以解釋我如何做到這一點 – iCaesar
不包括從我們的脂肪罐scala lib給出不好的結果,所以現在我試圖配置和使用ProGuard – iCaesar