2017-09-09 1 views
0

J'ai des problèmes avec le NDK-Build. C'est le message d'échec:L'exécution a échoué pour la tâche ': app: ndkBuild'

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

J'ai testé quelques corrections, mais cela ne fonctionne pas. Je ne sais pas ce que je peux faire de plus. J'espère que vous pouvez aider à fixer mon problème:

Voici le build.gradle:

import org.apache.tools.ant.taskdefs.condition.Os 

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 14 
    buildToolsVersion "25.0.2" 

defaultConfig { 
    applicationId "teaonly.droideye" 
    targetSdkVersion 14 

    ndk { 
     moduleName "MediaEncoder" 
    } 
} 

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

sourceSets.main { 
    jni.srcDirs = [] // This prevents the auto generation of Android.mk 
    jniLibs.srcDirs = ['src/main/jniLibs'] 
} 

//Call regular ndk-build(.cmd) script from app directory 
task ndkBuild(type: Exec) { 
    if (Os.isFamily(Os.FAMILY_WINDOWS)) { 
     commandLine 'ndk-build.cmd', '-C', file('src/main/jniLibs').absolutePath 
    } else { 
     commandLine 'ndk-build', '-C', file('src/main/jniLibs').absolutePath 
    } 
} 

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

} 

dependencies { 
    compile files('libs/java_websocket.jar') 
} 

Et voici ma local.properties:

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

Voici mon projet:

Project Path

+0

Vous pouvez utiliser le [support C++] intégré (https://developer.android.com/studio/projects/add-native-code.html) dans Android Studio, pas besoin de définir votre propre tâche ** ndkBuild ** . –

+0

Je sais, mais ce n'est pas mon propre projet. –

+0

Si vous préférez ne pas toucher les fichiers, assurez-vous que 'C: \ Utilisateurs \ Markus \ AppData \ Local \ Android \ Sdk \ ndk-bundle' est sur PATH –

Répondre

0

Je pense que votre problème est que vous ne spécifiez pas le travail dans le répertoire de la tâche Gradle. Même s'il définit correctement le paramètre ndk.dir, le fait est que commandLine sera par défaut dans le répertoire du projet, où il n'y a pas de fichier 'ndk-build.cmd'. Donc, il suffit d'ajouter la ligne suivante à votre tâche:

workingDir '/Users/Markus/AppData/Local/Android/Sdk/ndk-bundle' 

Vous pouvez en lire plus à ce sujet, et d'autres options Gradle pour commandLine, à l'emplacement suivant dans la documentation Gradle:

https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Exec.html

+0

Merci pour votre réponse, mais je ne sais pas dans quelle ligne je dois ajouter votre ligne, s'il vous plaît? –

+0

@MarkusJoos Il suffit d'ajouter la ligne immédiatement avant la ligne qui commence par 'if (Os.isFamily (Os.FAMILY_WINDOWS))' – Discoverer98

+0

ok je teste cela mais cela ne résout pas mon problème ^^ –