1

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

A是 2016 年的一个较旧的项目,编译良好并向我的设备或模拟器启动调试 apk。

B另一方面,是一个新项目。B有一个库模块,LibB它实际上包含对bitcoinj. B在不包含libB在 build.gradle 中的情况下运行得很好。但是,如果我包含libBbuild.gradlefor 中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.propertiessettings.gradle

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

说了这么多,我该怎么做才能让我的项目编译?

=====编辑=====

在 bitcoinj github 上发现了这个问题,但这种方法似乎存在几个问题。

  1. packagingOptions块必须包含在B的 build.gradle 中,而不是libB,这会在尝试分发时造成复杂性。
  2. 我没有在 中包含这个块A,它仍然有效。非常难过。
4

0 回答 0