Gradle实验性android库模块依赖未执行

2024-03-18

我正在使用 gradle 实验插件 0.7.3。 在我的项目中,我有几个本机模块,它们静态链接到我的 android 库模块,其中从它们构建共享库并在库 java 代码中使用。 然后,库模块将用作应用程序的依赖项。 依赖项添加如下:

dependencies {
    compile project(path: ':library-module')
}

当我使用 android studio 运行应用程序时,它失败了,因为找不到库的方法。我在 gradle 控制台中检查了它,它只构建应用程序本身,而不构建库,因为它只执行“:app-module:assembleArm7Debug”。

我想这是实验性插件的一个错误,因为它在非实验版本上运行良好。 我已经尝试了一种解决方法,并将以下内容添加到应用程序 build.gradle 中:

project.afterEvaluate{
    assembleArm7Debug.dependsOn(':library-module:assembleArm7Debug')
}

但这只会导致 gradle 错误,指出该应用程序没有属性 assembleArm7Debug,即使我可以使用 ./gradlew 调用它。 还有其他可能的方法来实现这项工作吗?

编辑: 库模块如下所示:

apply plugin: 'com.android.model.library'

model {
    android {
        compileSdkVersion 24
        buildToolsVersion "24.0.0"

        defaultConfig {
            minSdkVersion.apiLevel 19
            targetSdkVersion.apiLevel 24
            versionCode 1
            versionName "1.0.0"
        }

        ndk {
            moduleName = 'android_lib'
            toolchain = 'gcc'
            stl "gnustl_static"
            platformVersion "android-19"

            ldLibs.addAll(['android_libs'])

            cppFlags.addAll([
                    'more_flags',

                    "-I" + "includes",
            ])
        }

        buildTypes {
            release {
                minifyEnabled false
            }
            debug {
                ndk {
                    debuggable true
                }
                minifyEnabled false
            }
        }

        abis {
            create("armeabi-v7a") {
                CFlags.addAll([
                        'some_flags'
                ])
            }
            create("arm64-v8a") {
                CFlags.addAll([
                        'some_flags'
                ])
            }
            create("x86") {
            }
        }

        sources {
            main {
                java {
                    source {
                        srcDir "/src/main/java"
                    }
                }
                res {
                    source {
                        srcDir "res"
                    }
                }
                assets {
                    source {
                        srcDir "assets"
                    }
                }
                jni {
                    source {
                        srcDirs += [
                                "src_dirs"
                                ]
                    }

                    dependencies {
                        project ":native-lib" linkage "static" buildType "debug"

                        library "prebuilt_lib" linkage "static"
                    }

                    exportedHeaders {
                        srcDirs = [
                                "src_dirs"
                        ]
                    }
                }

            }
        }

        productFlavors {
            create("arm7") {
                ndk.abiFilters.add("armeabi-v7a")
            }
            create("arm8") {
                ndk.abiFilters.add("arm64-v8a")
            }
            create("x86") {
                ndk.abiFilters.add("x86")
            }
        }
    }

    repositories {
        libs(PrebuiltLibraries) {
            prebuilt_lib {
                binaries.withType(StaticLibraryBinary) {
                    staticLibraryFile = file("/lib/${targetPlatform.getName()}/liblib.a")
                }
            }
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-annotations:24.1.1'
}

编辑: 该问题似乎是由应用程序模块无法正确解决的产品风格引起的。我当前的解决方法是删除此模块的产品风格,并为我的所有架构添加 ndk.abiFilters。它以更多编译时间为代价解决了依赖性问题。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle实验性android库模块依赖未执行 的相关文章

  • Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“无法导入桥接标头”

    我的 Xcode 项目构建并运行良好 它有 Swift 和 Objective C 代码 它已安装 GPUImage 我向它添加了单元测试 现在它将不再编译 找不到 GPUImage h 文件 导入桥接标头失败 以下是我发现并尝试过的解决方
  • 按列分组的数据帧上 R 中的行之间的差异

    我希望通过 app name 获得不同版本的计数差异 我的数据集如下所示 app name version id count difference 这是数据集 data structure list app name structure c
  • 在应用程序的所有活动中重用操作栏

    我创建了一个 MenuActivity 它有一个操作栏和一个拆分操作栏 我想将此操作栏和 splitactionbar 视图用于我的应用程序中的所有活动 我是 android 的新手 所以有人可以逐步指导我 另外 我试图将搜索图标放在操作栏
  • 每次在我的 AWS SQS 目标上推送通知时如何触发事件?

    我正在将 AWS SQS 用于 Amazon MWS 订单 API 每当有人从已将我添加为其开发人员的卖家帐户订购时 亚马逊都会将通知发送到我的 AWS SQS 应用程序 我可以从那里提取通知 但为此 我必须创建一个调度程序来提取通知 我是
  • 如何防止 Safari 滚动溢出:隐藏的 iframe?

    使用 Safari 您可以通过设置 style overflow hide 来禁用大多数 iframe 滚动 在 iframe 上 但是 如果您单击 iframe 并移动鼠标 内容无论如何都会滚动 Example 滚动内容 html
  • 使用 AWS MSK 连接器连接到 AWS VPC 内的 MongoDB atlas

    我正在尝试使用MongoDB使用更改流Kafka 我选择 AWS MSK 是因为我的整个基础设施都位于 AWS 内 并且可以轻松与其他 AWS 服务集成 I created an AWS MSK cluster within the VPC
  • 在 WPF 树视图中获取 FullPath?

    如果我以编程方式创建 WPF TreeView 例如 TreeView treeView lt added in the designer TreeViewItem rootNode new TreeViewItem rootNode He
  • 为什么我们不能在函数式接口中重载抽象方法? (爪哇)

    所以我熟悉java中的函数式接口 以及它们与lambda表达式的使用 一个函数式接口只能包含一个抽象方法 当从 lambda 表达式使用这一孤独方法时 您不需要指定其名称 因为接口中只有一个抽象方法 编译器知道这就是您正在引用的方法 Exa
  • 当 Vuejs 中的 props 值发生变化时,DOM 不会更新

    我有父母和孩子 在父级中 我将 3 个变量作为 props 传递给子级 在孩子中我正在使用watch 寻找变量的变化 当孩子第一次被创建时watch按预期工作 但是当更新 props 中的数据时 子级的 DOM 不会更新 正在寻找变量数据变
  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • DELPHI 和 WANT 或 NANT

    We use 巡航控制 net http confluence public thoughtworks org display CCNET Welcome to CruiseControl NET在 Delphi 2006 应用程序中进行持
  • 重定向到破折号中的 url

    我正在使用 dash 构建一个仪表板 每当单击特定数据点时 我都会创建一个唯一的 url 如何将用户重定向到此创建的 url 我正在使用下面给出的代码 每当有人单击任何数据点时 单击事件就会触发并执行回调函数 app layout html
  • RetentionPolicy CLASS 与 RUNTIME

    两者之间有什么实际区别RetentionPolicy CLASS and RetentionPolicy RUNTIME 看起来两者都被记录到字节码中 并且无论如何都可以在运行时访问 无论如何 两者都可以在运行时访问 那不是那个javado
  • 如何使用 Spark 2 屏蔽列?

    我有一些表 我需要屏蔽其中的一些列 要屏蔽的列因表而异 我正在读取这些列application conf file 例如 对于员工表如下所示 id name age address 1 abcd 21 India 2 qazx 42 Ger
  • 在应用程序内核中找不到 FOSUserBundle

    我在 Windows 上使用 symfony 并尝试按照官方文档中的描述配置 FOSUserBundle 尝试更新架构时出现此错误 Class FOS UserBundle FOSUserBundle not found in app Ap
  • 如何通过API集成keycloak短信验证?

    我有一个 keycloak 服务器和使用自定义 KeycloakProvider 的 Laravel 应用程序 public function loginByEmail string email string password SsoTok
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include
  • 为什么 DbSet 不是协变的?

    我有一个工厂函数来返回DbSet Of IItemType 实际的返回类型始终是一个实现IItemType 例如DbSet Of CategoryType 我认为泛型支持协方差 并且此方法可以正常工作 但是当我尝试运行代码时出现异常 无法转

随机推荐