【发布时间】:2016-05-10 07:18:55
【问题描述】:
在我的 Android 项目中,我使用的是 barcodescanner。
我需要自定义定位二维码时显示的框架矩形的大小,我注意到实现此目的的唯一方法是修改库中的类。
现在我想知道,包含我对库所做的更改的最佳方式是什么?
如果我可以像以前在一些 java 项目中那样在源代码中简单地包含带有原始包的类,那就太好了,但是在 Android 中我得到一个错误:
com.android.dex.DexException: Multiple dex files define Lme/dm7/barcodescanner/core/ViewFinderView;
因为它会找到 2 个具有相同签名的类(1 个在库中,1 个在我的源代码中)。
有没有办法避免这种冲突?还是有更好的方法将 3rd 方库包含在更改中?
【问题讨论】:
-
快速回答,无需像我应该做的所有繁琐的工作来解释这一切:fork repo,进行更改并将它们推送到你的 fork,然后将 gradle 指向你的 fork。
-
我想我需要在我的项目中包含构建的分叉库(=aar 文件),除非我将工件发布到某个存储库。对吗?
-
有没有办法简单地扩展类并覆盖它们的行为?
-
不幸的是没有...我需要在我的项目中修改和导入 4 个类只是为了更改私有静态最终常量的值...我试图了解是否有更清洁的并且比这样做更容易维护。
标签: java android classpath dex