簡體   English   中英

在APK中包含具有相同軟件包名稱和名稱的類

[英]Including classes with the same package name and name in an APK

在為Android構建APK時,如果您嘗試兩次添加同一庫,但出現以下錯誤,則DX工具會失敗:

意外的最高級別異常:java.lang.IllegalArgumentException:已添加:Lcom / google / ads / AdRequest $ Gender; 在com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)在com.android.dx.dex.file.DexFile.add(DexFile.java:161)在com.android.dx.command .dexer.Main.processClass(Main.java:685)在com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)在com.android.dx.command.dexer.Main.access $ 600(位於com.android.dx.command.dexer.Main $ 1.processFileBytes(Main.java:572)處com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)處的Main.java:78) com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)上的com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)。在com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)上的com.android.dx.command.dexer.Main.processOne(Main.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)。 com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)處com.android.dx.command.dexer.Main.runMonoDex(Main.java: 264),位於com.android.dx.command.dexer.Main.run(Main.java:230),位於com.android.dx.command.dexer.Main.main(Main.java:199),com.android.dx .command.Main.main(Main.java:103)在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl SDKMain.main(SDKMain.java:129)處java.lang.reflect.Method.invoke(Method.java:483)處的.java:43)1錯誤; 中止

如果我有2個不同的庫(jar),它們包含具有相同包名和名稱的類,該怎么辦?

如何將這些添加到我的APK中? 有什么辦法嗎?

首先請注意,即使兩個罐子不在同一個項目中,也會彈出“已經添加”錯誤。 例如:將項目鏈接到包含具有相同類的jar的庫項目。

其次:如果您確實有兩個具有相同類文件的jar,則構建系統將僅使用它所看到的第一個。 因此,如果您知道要使用運行時中的哪一個,則解決方案很簡單:只需將其放在類路徑中的較早位置即可。 或從視覺上講- 將其放在“訂購和出口”列表的上方

在此處輸入圖片說明


第三:如果您確實沒有其他方法,則始終可以打開一個jar文件(使用WinRAR的 ee)並刪除其某些類文件。

暫無
暫無

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

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