猿问

在ndk {} DSL中定义LOCAL_SRC_FILES

我想知道是否可以在gradle.build ndk {}块中定义LOCAL_SRC_FILES。


我目前正在使用:


dependencies {

    classpath 'com.android.tools.build:gradle:1.3.0'

}

在我的顶级gradle.build文件中。


我的jni模块gradle.build文件如下所示:


apply plugin: 'com.android.library'


dependencies {

    compile fileTree(dir: 'libs', include: '*.jar')

}


android {

    compileSdkVersion 11

    buildToolsVersion "22.0.1"


    def jniSrc = System.getProperty("user.home") + "/srcs/jni"


    defaultConfig {

        ndk {

            moduleName "core"

            stl "gnustl_shared"

            cFlags "-std=c++11"

        }

    }


    sourceSets {

        main {

            manifest.srcFile 'AndroidManifest.xml'

            java.srcDirs = ['src']

            resources.srcDirs = ['src']

            aidl.srcDirs = ['src']

            renderscript.srcDirs = ['src']

            res.srcDirs = ['res']

            assets.srcDirs = ['assets']

            jniLibs.srcDirs = ['libs']

            jni.srcDirs = ["${jniSrc}"]

        }

    }


    buildTypes {

        release {

            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

        debug {

            jniDebuggable true

        }

    }


    productFlavors {

        x86 {

            ndk {

                abiFilter "x86"

            }

        }

        arm {

            ndk {

                abiFilter "armeabi-v7a"

            }

        }

        mips {

            ndk {

                abiFilter "mips"

            }

        }

    }

}

我问的原因是,在我的jni源代码下,有针对不同平台的代码,不仅仅是Android,还有iOS和WinRT。


我有点不愿意迁移到实验性的'com.android.tools.build:gradle-experimental:0.2.0',但如果前面提到的模块解决了这个问题,我可以尝试一下。


我也不想用:


jni.srcDirs = []

并覆盖Android.mk的创建,因此使用我自己的自定义,因为我不确定我是否可以从Android Studio本地调试C ++(虽然我可能错了,但我绝对不是Android Studios的专家用户ndk插件)。


提前谢谢了,


慕码人2483693
浏览 717回答 2
2回答
随时随地看视频慕课网APP
我要回答