当包含带有本机组件(`bitcoinj`)的库时,APK无法安装

时间:2018-07-16 19:09:35

标签: android gradle android-ndk android-library bitcoinj

我有两个项目,AB。这两个项目都依赖于org.bitcoinj:bitcoinj-core:0.14.7

A是2016年以来的较旧项目,可以很好地编译并向我的设备或仿真器启动debug-apk。

另一方面,

B是一个新项目。 B有一个库模块LibB,它实际上包含对bitcoinj的引用。 B运行得很好,在build.gradle中不包含libB。但是,如果我在libB的{​​{1}}中包含build.gradle,则Android Studio会在通知B之前,在Install APK步骤上暂停8-10分钟。偶尔(不一致),我会得到Session 'app': Error Launching activity,我从question中知道这是由于没有适用于CPU体系结构的正确本机库引起的。

查看gradle为每个项目运行的任务,我可以看到项目INSTALL_FAILED_NO_MATCHING_ABIS执行NDK任务,A:app:compileDebugNdk等。:app:mergeDebugJniLibFolders不运行这些步骤。我试图将B包括在根项目中,而不是通过库,并且在执行这些步骤的同时,我仍然可以通过bitcoinj得到相同的结果。我什至走了一个新的空项目B,并将C包含在依赖项中,而且也无法部署到我的设备上。

我已遍历我的bitcoinj文件,build.gradlegradle-wrapper.propertiesgradle.properties,gradle包装器和其他非源文件,以期找到不一致的地方会导致这些构建失败,但是我还没有发现。

我意识到这是一个相当模糊和复杂的问题,并且非常乐意用可能缺少的任何澄清来更新该问题。

所有这些,我该怎么做才能编译我的项目?

===== EDIT =====

我发现了this issue on the bitcoinj github,但是这种方法似乎存在一些问题。

  1. settings.gradle块必须包含在packagingOptions的build.gradle中,而不是B中,这会导致分发时变得很复杂。
  2. 我没有将此块包含在libB中,它仍然有效。很沮丧。

0 个答案:

没有答案