更改CMakeLists.txt路径的Android Studio NDK项目导致错误(无法找到Ninja)

时间:2018-02-11 22:29:19

标签: android-studio gradle cmake android-ndk android-gradle

我在Android Studio中使用CMake有一个原生的android项目结构。我想在build.gradle中更改我的CMakeLists.txt文件的路径,默认情况下src/main/cpp/CMakeLists.txtD:/Projects/AndroidNative/CMakeLists.txt

执行此更改后,我的build.gradle如下所示: (" externalNativeBuild"范围中的相关部分)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '25.0.0'
    defaultConfig {
        applicationId "com.myproject.andndk"
        minSdkVersion 15
        targetSdkVersion 23

        ndk {
            abiFilters 'x86', 'armeabi', 'armeabi-v7a'
        }

        externalNativeBuild {
            cmake {
                arguments '-DANDROID_PLATFORM=android-15',
                        '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    externalNativeBuild {
        cmake {
            path 'D:/Projects/AndroidNative/CMakeLists.txt'
        }
    }
    sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
}

所以当我同步我的gradle项目时,我有这个错误:

  The detected version of Ninja () is less than the version of Ninja required

我确实安装了Ninja并且是最新的,显然是因为我在更改CMakeLists路径之前没有出现此错误。所以我不明白为什么它再也找不到忍者?

这是生成的CMake命令:

Error while executing process
C:\Users\xxxx\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\cmake.exe
with arguments {-HD:\Projects\AndroidNative
-BC:\Users\xxxx\AndroidStudioProjects\andndk\app\.externalNativeBuild\cmake\release\armeabi-v7a
-GAndroid Gradle - Ninja -DANDROID_ABI=armeabi-v7a -DANDROID_NDK=C:\Users\xxx\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Users\xxxx\AndroidStudioProjects\andndk\app\build\intermediates\cmake\release\obj\armeabi-v7a
-DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=C:\Users\xxxx\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\ninja.exe
-DCMAKE_TOOLCHAIN_FILE=C:\Users\xxxx\AppData\Local\Android\sdk\ndk-bundle\build\cmake\android.toolchain.cmake
-DANDROID_PLATFORM=android-15 -DANDROID_PLATFORM=android-15 -DANDROID_TOOLCHAIN=clang -DANDROID_STL=gnustl_static}

0 个答案:

没有答案