我知道这听起来很荒谬,但在Android项目中是否可能将两个不同版本的.jar库放入其中(这两个版本显然具有相同或重叠的包和类名称),并在导入库的类到我的Java源代码时显式指向它们中的一个?
我的开发环境是Android Studio和Gradle。
我考虑这样做的原因(如果可能的话)是因为我依赖于供应商提供的闭源.jar驱动程序库,用于我Android应用程序所使用的USB设备。供应商已经在其最新驱动程序中添加了对新芯片版本的支持,但同时他们放弃了对旧芯片版本的支持。这是他们为自己好的原因做出的决定,并且不太可能被撤销。我的想法是以某种方式携带应用程序的旧版本和新版本库,以便我可以继续支持旧硬件。
我认为理论上这样做是可能的,但这是一项复杂的任务,也许需要对一个.jar进行反编译并更改包名称。
我的开发环境是Android Studio和Gradle。
我考虑这样做的原因(如果可能的话)是因为我依赖于供应商提供的闭源.jar驱动程序库,用于我Android应用程序所使用的USB设备。供应商已经在其最新驱动程序中添加了对新芯片版本的支持,但同时他们放弃了对旧芯片版本的支持。这是他们为自己好的原因做出的决定,并且不太可能被撤销。我的想法是以某种方式携带应用程序的旧版本和新版本库,以便我可以继续支持旧硬件。
我认为理论上这样做是可能的,但这是一项复杂的任务,也许需要对一个.jar进行反编译并更改包名称。
jarjar
的工具重新打包其中一个 JAR 文件,否则就只能玩一些不好的类加载器游戏了。 - CommonsWarejarjar
的建议非常有趣。 - Trevor