web-dev-qa-db-fra.com

Erreur après la mise à niveau Android Studio NDK: CMAKE_C_COMPILER et CMAKE_CXX_COMPILER non définis

Après la mise à jour Android Studio NDK, je ne peux pas créer mon application, en raison d'une erreur liée à CMAKE (mon application utilise un fichier c ++). Voici les lignes d'erreur:

Build command failed.
Error while executing process C:\Users\AnimallTag\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {-HC:\Projetos\Git\at65\app -BC:\Projetos\Git\at65\app\.externalNativeBuild\cmake\debug\mips -GAndroid Gradle - Ninja -DANDROID_ABI=mips -DANDROID_NDK=C:\Users\AnimallTag\AppData\Local\Android\sdk\ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=C:\Projetos\Git\at65\app\build\intermediates\cmake\debug\obj\mips -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=C:\Users\AnimallTag\AppData\Local\Android\sdk\cmake\3.6.4111459\bin\ninja.exe -DCMAKE_TOOLCHAIN_FILE=C:\Users\AnimallTag\AppData\Local\Android\sdk\ndk-bundle\build\cmake\Android.toolchain.cmake -DANDROID_PLATFORM=Android-14}
 (include)   CMakeLists.txt 
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

Une suggestion pour m'aider à résoudre ce problème? Peut-être que je peux rétrograder NDK ou une Android Studio version précédente que je peux installer ...

Error screen in Android Studio

9
Nathan Imamura

J'ai réussi à le réparer. Une chose que j'ai remarquée était le journal des modifications de Android NDK, et il dit qu'il n'y a plus de support pour ABA armeabi, MIPS et MIPS64, donc j'ai filtré les ABI dans mon fichier build.gradle:

Android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
            }
        }
    }
}

Après cela, j'ai synchronisé Gradle et Android Studio m'a invité à mettre à jour Gradle, et je l'ai fait. L'application peut maintenant être déployée, mais je ne sais pas ce qui l'a corrigée. Apparemment, l'erreur n'était pas liée à CMAKE_C_COMPILER ni à CMAKE_CXX_COMPILER, cela se produisait ailleurs et lorsque la construction a échoué, il n'a pas pu trouver ces variables. Peut-être que cela peut aussi aider quelqu'un ...

10
Nathan Imamura

Après la mise à jour récente de NDK, CMAKE se cassait

Rien n'a fonctionné mais J'ai rétrogradé NDK en téléchargeant NDK depuis https://developer.Android.com/ndk/downloads/older_releases

et changé NDK DIR PATH dans local.properties en

ndk.dir=/Users/kathan/Library/Android/sdk/Android-ndk-r17c

Et juste Sync Gradle.

A fonctionné comme un charme

5
Kathan Shah

Dans mon cas, j'avais deux dossiers d'installation pour NDK. J'avais besoin de mettre à jour mon local.properties pour pointer vers le bon répertoire. J'ai mis à jour mon NDK et build.gradle (à travers les réponses ci-dessus), resynchronisé puis tout a bien fonctionné.

1
user1506104

Hé, j'ai rencontré un problème similaire après l'installation de ndk-bundle, l'erreur a été résolue de la manière suivante:

Ajoutez l'extrait de code suivant dans build.gradle fichier (niveau module):

Android {
   defaultConfig {
       ndk {
            abiFilters "armeabi-v7a", "x86"
        }

        externalNativeBuild {
            cmake {
                abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86', 'x86_64'
            }
        }
      }
}

Remarque: Si vous avez déjà ce type de code dans le fichier build.gradle, assurez-vous qu'il n'y en a pas abiFilters à la place de ceux que je mentionne ici.

Assurez-vous également d'avoir ajouté:
distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.Zip

dans gradle/wrapper/gradle-wrapper.properties fichier.

Merci! Happy Coding :)

0
Monir Zzaman