android - gradle 安卓 ndk 构建

标签 android android-studio gradle android-ndk build-system

我正在尝试使用 gradle(以前是 ant)在 android 上构建 cocos2dx c++ 项目。 我想要两个 gradle 任务:

1) 构建 C++ 和 Java。我找到了解决方案

task buildCpp(type: Exec) {
    commandLine ... // command
}
tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn buildCpp
}

2) 在没有 cpp 的情况下构建 Java。怎么办?

注意。使用 ant 我可以定义两个目标:

<!-- Build all -->
<target name="buildAll"
            description="build all: ndkBuild -> javac"
            depends="setDebugFlagTrue, ndkBuild, buildJavaSigned"/>

<!-- Build Java only -->
<target name="buildJavaSigned"
        description="javac"
        depends="setDebugFlagFalse, clean, release"/>

我怎样才能用gradle做到这一点?看来ant比gradle更灵活..

最佳答案

嗯...老实说,我认为您可能想要一个更灵活的解决方案。 Gradle 对 NDK 的使用并不是最好的,并且有一些方法可以在不失去使用 gradle 的其他好处的情况下为 native 构建增加更多的灵 active (例如使用支持的 IDE for Android,截至 6/30/2015,Android studio)。

我建议关注 this tutorial ,它将向您展示如何强制 gradle 使用 Android.mk 文件。这些文件通过使用可以围绕您需要构建它们的方式进行更改的模块来提供更大的灵 active 。我完全建议将您在其他地方的 C++ 库编译成 .so 文件,这可以给您更多的空间来喘息和调试问题。

This document解释了 Android.mk 文件的各个方面,以便您可以更好地理解您想要构建的方式。有很多构建选项,而且更容易控制。

祝你好运!我希望这会有所帮助。

关于android - gradle 安卓 ndk 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31070541/

相关文章:

android - 防止自定义 SurfaceView 在其他 View 之上绘制

android - 当我在 android studio 中运行我的程序时出现错误 "unfortunately, my application has stopped"

java - 转换异常 : Multiple dex files define Lcom/google/android/gms/internal/zzcaw;

Gradle sonarqube 无法识别常规测试

java - AndroidStudio Retrofit2 响应获取数据

android-studio - Pulltorefresh 添加到 gradle

android - 自定义对话框中的 gridview 不起作用...?

android - 我们如何在 flutter_riverpod 中没有 ref 对象的情况下访问提供程序?

android - Gradle lint 找不到 AndroidManifest.xml 中引用的类

java - 如果 key 被占用,如何创建新的 SharedPreferences?