我有两个项目,A
和B
. 这两个项目都依赖org.bitcoinj:bitcoinj-core:0.14.7
.
A
是 2016 年的一个较旧的项目,编译良好并向我的设备或模拟器启动调试 apk。
B
另一方面,是一个新项目。B
有一个库模块,LibB
它实际上包含对bitcoinj
. B
在不包含libB
在 build.gradle 中的情况下运行得很好。但是,如果我包含libB
在build.gradle
for 中B
,Android StudioInstall APK
在通知我之前会在该步骤上挂起 8-10 分钟Session 'app': Error Launching activity
。偶尔(不一致)我会得到INSTALL_FAILED_NO_MATCHING_ABIS
,我从这个问题中知道这是由于没有正确的 cpu 架构的本机库引起的。
查看 gradle 为每个项目运行的任务,我可以看到项目A
执行 NDK 任务:app:compileDebugNdk
,,,:app:mergeDebugJniLibFolders
等等B
,但是,不运行这些步骤。我试图包含bitcoinj
在根项目中,而不是通过库,虽然现在执行了这些步骤,但我仍然得到相同的结果B
。我什至开始了一个新的空项目,C
并包含bitcoinj
在依赖项中,但它也无法部署到我的设备上。
我已经逐步检查了我的build.gradle
文件、、、、、gradle 包装器和其他非源文件gradle-wrapper.properties
,希望找到导致这些失败构建的不一致之处,但是我没有发现任何问题。gradle.properties
settings.gradle
我意识到这是一个相当模糊和复杂的问题,并且非常乐意用可能缺少的任何澄清来更新问题。
说了这么多,我该怎么做才能让我的项目编译?
=====编辑=====
我在 bitcoinj github 上发现了这个问题,但这种方法似乎存在几个问题。
- 该
packagingOptions
块必须包含在B
的 build.gradle 中,而不是libB
,这会在尝试分发时造成复杂性。 - 我没有在 中包含这个块
A
,它仍然有效。非常难过。