当前位置: 首页 > 知识库问答 >
问题:

Android Studio NDK生成故障错误:任务执行失败:应用程序:ndkBuild

向子安
2023-03-14

我正在使用最新的android studio build 1.5,因为我想导入一个需要NDK的eclipse项目。我的项目正在进行中。我尝试导入组织。阿帕奇。工具。蚂蚁taskdefs。条件操作系统,但在我构建APK时,它正在工作,它会出错:

Error:Execution failed for task ':app:ndkBuild'.
> A problem occurred starting process 'command 'ndk-build.cmd''

我的build.gradle:

 apply plugin: 'com.android.application'
import org.apache.tools.ant.taskdefs.condition.Os

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "vaeapp.gamecard.vn"
        minSdkVersion 14
        targetSdkVersion 19
        multiDexEnabled = true
        versionCode 4
        versionName "1.3.4"

        ndk {
            moduleName "gc"
        }
    }
    task ndkBuild(type: Exec) {
        if (Os.isFamily(Os.FAMILY_WINDOWS)) {
            commandLine 'ndk-build.cmd', '-C', file('src/main').absolutePath
        } else {
            commandLine 'C\\:\\\\Users\\\\Android\\\\AppData\\\\Local\\\\Android\\\\sdk\\\\ndk-bundle', '-C', file('src/main/jni').absolutePath
        }
    }

    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn ndkBuild
    }

    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    //compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
    compile 'com.facebook.android:facebook-android-sdk:4.2.0'
    // compile 'com.android.support:appcompat-v7:20.0.0'
//    compile 'com.google.android.gms:play-services:+'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile files('libs/activation.jar')
    compile files('libs/additionnal.jar')
    compile files('libs/commons-io-2.4.jar')
    compile files('libs/error-reporter.jar')
    //compile files('libs/httpclient-4.0.1.jar')
    compile files('libs/mail.jar')
    compile files('libs/universal-image-loader-1.9.3.jar')
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
    // compile 'com.parse:parse-android:1.10.1'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.parse:parse-android:1.+'
}

我的local.properties:

ndk.dir=C\:\\Users\\Android\\AppData\\Local\\Android\\sdk\\ndk-bundle
sdk.dir=C\:\\Users\\Android\\AppData\\Local\\Android\\sdk

请帮我修复错误。非常感谢你!

共有1个答案

黎苑博
2023-03-14

我们使用以下包装器:

task ndkBuild(type: Exec) {

    File ndkDir = project.getPlugins().getPlugin('com.android.library').sdkHandler.getNdkFolder()
    if (ndkDir == null) {
        ndkDir = file(System.getenv('NDK_ROOT'))
    }

    if (ndkDir == null) {
        def gradle_project_root = project.rootProject.rootDir
        throw new GradleException("NDK is not configured. Make sure there is a local.properties " +
                "file with an ndk.dir entry in the directory ${gradle_project_root}, or set the " +
                "ANDROID_NDK envrionment variable")
    }

    def ndkBuildExecutable = new File(ndkDir, 'ndk-build')
    if (Os.isFamily(Os.FAMILY_WINDOWS)) {
        ndkBuildExecutable += '.cmd'
    }
    if (!ndkBuildExecutable.exists()) {
        throw new GradleException("Could not find ndk-build. The configured NDK directory ${ndkDir} may not be correct.")
    }
    commandLine(ndkBuildExecutable, '-j8', '-C', file('src/main').absolutePath)
}

在gradle中,ndk构建的实际路径。cmd是为非Windows平台设置的。我认为这是错误的,因为您在那里设置的路径是一条非常Windows-y的路径。而且,为了避免转义字符乘法的疯狂,您可以在gradle文件中使用正斜杠/来定义路径,例如'C:/Users/Android/AppData/Local/Android/sdk/ndk bundle'。仅确保指定的所有路径没有空格(例如,'C:/Program Files')。

 类似资料:
  • 应用程序构建错误:'app:checkDebug重复类' 我知道通过删除一个类可以解决此错误,但我不知道如何删除它,或者有任何其他方法可以解决此问题。 谢啦 失败:生成失败,出现异常。问题:任务“:app:checkDebugDuplicateClasss”的执行失败。执行com.android.build.gradle.internal.tasks时出错。检查DuplicatesRunnable

  • 我得到这些错误,当我运行我的代码。请任何想法,我怎么能修复这些?我升级了颤振,pubspeck.lock.我提到代码是旧的,我试图升级 > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整的见解。 获取更多帮助https://help.gradle.org

  • 当我要构建apk时,我收到此错误。 执行任务“app:transformClassesWithDexForDebug”失败。 这是错误的截图

  • 错误:任务“:app:checkdebugaarmadata”的执行失败 发生多个任务操作失败:执行com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction时发生失败

  • 每当我运行、制作或清理项目时, 出现此错误消息。 我已经检查了我的资源文件好几次,没有出现致命错误。只有png图标和xml文件。 我不知道“-1”是什么意思。。 在我的主java文件中,有“无法解析符号R”错误。 我的应用程序昨晚启动得很好,但当我今天早上醒来运行android studio时,它失败了。 我该怎么办? 这是我的猎物 在下面,我添加了我的全部gradle输出,谢谢。 执行任务:[:

  • 我正在尝试构建一个颤振应用程序,该应用程序已经在其他系统中开发,但我得到的梯度误差如下所示: 正在启动lib/main。sdk gphone64 arm64上的dart处于调试模式。。。正在运行Gradle任务“assembleDebug”。。。警告:映射新的nshttp://schemas.android.com/repository/android/common/02给老奶奶http://sc