【发布时间】:2021-05-01 09:10:48
【问题描述】:
我有一个MyLocationService 库,它依赖于huawei_location_service。在里面我有HMSLocationService 类,这是唯一一个使用huawei_location_service 类的类,我使用relfection 来访问该类。意思是,如果我们在华为上运行应用程序,如果有来自huawei_location_service 的依赖,我会得到位置,否则不会。并且应用程序应该可以在非华为设备上完美运行,而不依赖于huawei_location_service。
所以当我构建 MyLocationService.aar 时,我从它的 pom 文件中删除了 huawei_location_service 依赖项。之后,我创建了一个新应用程序并添加了来自 MyLocationService.aar 的依赖项。当我使用命令 gradlew app:dependencies 检查依赖项时,我没有看到来自 huawei 的任何依赖项,但是当我创建一个 apk 并对其进行分析时,在 classes.dex 中有来自 huawei_location_service 的类。 p>
问题:这怎么可能?还有其他方法可以实现我想要的吗?
附:我也分析了MyLocationService.aar,没有发现任何华为依赖。有没有其他方法可以检查 *.aar 文件的依赖关系,而不是 pom 或 android studio 的分析工具?
【问题讨论】:
标签: android api gradle implementation transitive-dependency