Android Studio NDK:使用ndk-build进行编译,并通过Gradle Experiment获得本机支持

维塔利

为了在Android Studio编辑器中建立索引,我应该在build.gradle中添加以下代码:

ndk {
            moduleName "MyModule"
            CFlags.add("-I${file("src/main/jni/headers1")}".toString())
            CFlags.add("-I${file("src/main/jni/headers2")}".toString())
}

但是gradle忽略了我的Android.mk,如果我要从build.gradle中删除此代码,那么由于所有头文件都在这2个文件夹中,因此我在编辑器中将无法获得正确的索引。有谁知道如何通过我的Android.mk进行编译,并且仍然可以进行本机编辑和调试?

我正在使用:Android Studio 2.1稳定gradle-experimental:0.7.0我的build.grade:

apply plugin: "com.android.model.application"

def ndkDir = System.getenv("ANDROID_NDK_HOME")
def propertiesFile = project.rootProject.file('local.properties')
if (propertiesFile.exists()) {
    Properties properties = new Properties()
    properties.load(propertiesFile.newDataInputStream())
    ndkDir = properties.getProperty('ndk.dir')
}
model {
    android.sources {
        main {
            jni {
                source {
                    srcDirs.removeAll()
                    srcDir  'src/main/none'
                }
            }
            jniLibs {
                source {
                    srcDir 'src/main/libs'
                }
            }
        }
    }
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

         ndk {
                moduleName "MyModule"
                CFlags.add("-I${file("src/main/jni/headers1")}".toString())
                CFlags.add("-I${file("src/main/jni/headers2")}".toString())
    }

        defaultConfig {
            applicationId "com.myapp.android.me"
            minSdkVersion.apiLevel 19
            targetSdkVersion.apiLevel 23
        }

        buildTypes {
            debug {
                ndk {
                    debuggable = true
                }
            }
        }
    }

}
dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile 'com.google.code.gson:gson:2.2.4'
}

task buildNative(type: Exec, description: 'Compile JNI source via NDK'){
    commandLine "${ndkDir}/ndk-build",'NDK_DEBUG=1','NDK_PROJECT_PATH ='+ getProjectDir() + '/src/main'
}
tasks.withType(AbstractCompile) {
    compileTask -> compileTask.dependsOn buildNative
}
亚历克斯·科恩

您可以设置实验性插件来运行您的buildNative任务,而不是内置的编译和链接任务:

tasks.all {
    task ->
        if (task.name.startsWith('compile') && task.name.contains('MainC')) {
            task.enabled = false
        }
        if (task.name.startsWith('link')) {
            task.enabled = false
        }
        if (task.name.endsWith('SharedLibrary') ) {
            task.dependsOn buildNative
        }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Android Studio和Gradle Experiment将libxml2构建到NDK中

来自分类Dev

如何使用Android Studio + Gradle + NDK构建外部C ++库?

来自分类Dev

项目使用ndk-build而非Android Studio构建

来自分类Dev

NDK:是否可以在build.gradle中定义android NDK版本,以便本机代码使用已定义的版本?

来自分类Dev

使用Android NDK编译libpcap

来自分类Dev

Android Studio NDK:排除本机文件?

来自分类Dev

Android Studio 1.3 Preview NDK支持

来自分类Dev

使用 Android Studio Gradle Build、NDK 和 CMake 检查预处理器指令

来自分类Dev

在Android Studio(OpenCV)中使用NDK

来自分类Dev

如何使用android studio构建ndk项目?

来自分类Dev

Android Studio,Gradle,OpenCV和NDK

来自分类Dev

Android.mk-包括OpenCV目录,用于使用NDK进行本机C ++编译

来自分类Dev

Android Studio 2.0使用gradle-experimental插件中断了ndk的构建

来自分类Dev

如何在Android Studio 2.2预览版1中正确使用NDK-Build

来自分类Dev

使用Android Studio 2.0(测试版2)进行NDK逐步调试

来自分类Dev

在Android中使用NDK编译回声消除

来自分类Dev

在Android中使用NDK编译回声消除

来自分类Dev

Android-使用NDK构建Gradle

来自分类Dev

建议使用哪个OS平台使用Android NDK进行本机游戏开发?

来自分类Dev

Android NDK无法使用两个gradle插件调试本机代码

来自分类Dev

无法使用android-ndk和Android Studio构建项目

来自分类Dev

无法使用android-ndk和Android Studio构建项目

来自分类Dev

Can't build project with android-ndk and Android Studio

来自分类Dev

在Android Studio 1.3上,NDK支持不起作用

来自分类Dev

Android Studio Update 1.0破坏了NDK的编译

来自分类Dev

NDK和Android Studio,由于共享库而导致编译崩溃

来自分类Dev

使用NDK在Android Studio 1.0.2中生成.so文件

来自分类Dev

java.lang.UnsatisfiedLinkError-Android Studio Gradle中的NDK?

来自分类Dev

Android Studio ndk-build 找不到文件

Related 相关文章

  1. 1

    使用Android Studio和Gradle Experiment将libxml2构建到NDK中

  2. 2

    如何使用Android Studio + Gradle + NDK构建外部C ++库?

  3. 3

    项目使用ndk-build而非Android Studio构建

  4. 4

    NDK:是否可以在build.gradle中定义android NDK版本,以便本机代码使用已定义的版本?

  5. 5

    使用Android NDK编译libpcap

  6. 6

    Android Studio NDK:排除本机文件?

  7. 7

    Android Studio 1.3 Preview NDK支持

  8. 8

    使用 Android Studio Gradle Build、NDK 和 CMake 检查预处理器指令

  9. 9

    在Android Studio(OpenCV)中使用NDK

  10. 10

    如何使用android studio构建ndk项目?

  11. 11

    Android Studio,Gradle,OpenCV和NDK

  12. 12

    Android.mk-包括OpenCV目录,用于使用NDK进行本机C ++编译

  13. 13

    Android Studio 2.0使用gradle-experimental插件中断了ndk的构建

  14. 14

    如何在Android Studio 2.2预览版1中正确使用NDK-Build

  15. 15

    使用Android Studio 2.0(测试版2)进行NDK逐步调试

  16. 16

    在Android中使用NDK编译回声消除

  17. 17

    在Android中使用NDK编译回声消除

  18. 18

    Android-使用NDK构建Gradle

  19. 19

    建议使用哪个OS平台使用Android NDK进行本机游戏开发?

  20. 20

    Android NDK无法使用两个gradle插件调试本机代码

  21. 21

    无法使用android-ndk和Android Studio构建项目

  22. 22

    无法使用android-ndk和Android Studio构建项目

  23. 23

    Can't build project with android-ndk and Android Studio

  24. 24

    在Android Studio 1.3上,NDK支持不起作用

  25. 25

    Android Studio Update 1.0破坏了NDK的编译

  26. 26

    NDK和Android Studio,由于共享库而导致编译崩溃

  27. 27

    使用NDK在Android Studio 1.0.2中生成.so文件

  28. 28

    java.lang.UnsatisfiedLinkError-Android Studio Gradle中的NDK?

  29. 29

    Android Studio ndk-build 找不到文件

热门标签

归档