Wynik rozwiązania NDK: Ustawienia projektu: wersja modelu Gradle = 5.4.1, wersja NDK jest błędem NIEZNANY


103

Po zaktualizowaniu Android Studio i Gradle do wersji 3.5 otrzymuję ten błąd:

Wynik rozwiązania NDK: Ustawienia projektu: wersja modelu Gradle = 5.4.1, wersja NDK jest NIEZNANA

Zmieniłem wersję Gradle w build-gradle z powrotem na 3.4.2, ale to nie pomogło.


Jaka jest Twoja wersja NDK? Jak został zainstalowany? W jaki sposób używasz go w swoim projekcie (określonym w build.gradle, local.properties lub ANDROID_NDK_HOME)? Co znajduje się w pliku source.properties w NDK?
— Dan Albert

2
Skąd masz ten „błąd”? Otrzymuję ten komunikat po aktualizacji Android Studio we wszystkich moich projektach w dzienniku zdarzeń, ale nie ma to żadnego wpływu. Wszystko buduje się i działa tak, jak powinno. Nigdy nie używałem NDK - więc nie obchodzi mnie, czy to nie zadziała.
— Niesamowity

1
myślę, że "wersja NDK" nie jest głównym problemem .... ponownie importuję projekt ... i problem został rozwiązany
— Farhad Farzin


1
Możliwe, że żadne z rozwiązań nie zadziała dla Ciebie (u mnie nie zadziałały). Problem jest śledzony przez Google, możesz go tam oznaczyć gwiazdką issuetracker.google.com/issues/140403764
— Mike Hardy

Odpowiedzi:


70

Miałem podobny problem i rozwiązałem go, otwierając projekt za pomocą Import project (Gradle, Eclipse, etc.)zamiast Open existing Android Studio project.


9
To nie rozwiązało tego problemu. Nadal mam błąd nawet z gradle 5.6.1 / pluginem 3.5.0 / Android Studio 3.5.0 po ponownym zaimportowaniu projektu
— Mike Hardy

Dla kompletności (ponieważ powiedziałem, że nie działa dla mnie) to faktycznie nie działa dla mnie - a nawet jest wymagane - aby ustalić odrębną głupie rodzaju Gradle + reagowania-natywną natywną problem moduł kompilacji. Więc jako sztuczka „Android Studio / gradle”, którą możesz mieć w swojej torbie sztuczek, jest dobra.
— Mike Hardy

20
przejdź do Plik> Struktura projektu>
— PobierzNDK,

3
Zamknąłem projekt, usunąłem wszystkie foldery Build, pliki .iml, folder .idea. Następnie otworzył projekt i udało się go zbudować
— Dmitriy Pavlukhin

1
@KingKongCoder Znalazłem ten link w Plik> Struktura projektu> Lokalizacja SDK> Pobierz Android NDK
— bitlather

18

Możesz pobrać NDK z Plik> Projekt Structur> Wybierając lokalizację SDK z lewego panelu i naciskając Pobierz z części lokalizacji NDK.


9
Nie ma sensu, jeśli go nie używasz.
— Niesamowity

Pytanie dotyczy komunikatu o błędzie, a odpowiedź nie powinna wymagać jego instalacji, aby pozbyć się komunikatu. NDK jest pakietem opcjonalnym
— Mike Hardy

Odpowiedź jest dla każdego, kto używa NDK i napotyka ten błąd, aw pytaniu nie ma wzmianki, że używa NDK, czy nie. @ The
— Zahra

1
NDK zajmuje prawie 1 GB twojego poprzedniego dysku twardego! I nie jestem pewien, czy jest jakiś inny wpływ (taki jak pamięć, wydajność, procesor itp.). Dlaczego musimy go pobierać, jeśli nigdy nie jest używany? Czy możemy po prostu zignorować błąd?
— Pablo Alfonso

@Pablo Tak, jeśli nie używasz NDK i żadna z odpowiedzi nie pomogła, zignoruj ​​błąd.
— Zahra

11

Miałem ten sam problem po uaktualnieniu mojego studia Android. Musisz tylko otworzyć local.propertiesi zmienić ndk.dirścieżkę do swojej ścieżki NDK.

Kod:

ndk.dir=D\:\\Android\\SDK\\ndk-bundle
sdk.dir=D\:\\Android\\SDK

3
programuję w JAVA i w ogóle nie mam NDK
— Farhad Farzin

2
Nie ma to sensu, jeśli nie masz i nie chcesz NDK. Jest to element opcjonalny
— Mike Hardy

W pliku local.properties jest napisane „Ten plik jest generowany automatycznie przez Android Studio. Nie modyfikuj tego pliku - TWOJE ZMIANY ZOSTANĄ USUNIĘTE!”
— leoneboaventura

7

Nie używam NDK w moim projekcie, ale miałem ten sam problem. Problem zniknął po zaktualizowaniu wersji SDK do najnowszej kompilacji SDKVersion 29


2
Ciekawe - myślałem, że ma potencjał, więc spróbowałem, ale nadal go nie rozwiązałem. Jest tutaj otwarty problem issuetracker.google.com/issues/140403764
— Mike Hardy

2
@MikeHardy Obecnie używam wtyczki Gradle w wersji 3.5.0 i wersji Gradle 5.4.1. Spróbuj zmienić te wersje, a błąd zostanie naprawiony. Mam nadzieję, że to ci pomoże.
— Vlad

1
wszystko jest aktualne, ale wciąż takie samo!
— Sahan Pasindu Nirmal

6

Miałem poprzednią odpowiedź (ponieważ została usunięta przez moderatorów), w której wyszczególniłem, że istnieją obejścia (jak wymieniono tutaj), które działają dla niektórych, ale w gradle jest podstawowy błąd, ponieważ obejścia nie działają dla wszystkich (w szczególności: żadne z pracują dla mnie)

Powiązany problem z Google jest tutaj: https://issuetracker.google.com/issues/140403764

Aktualizacja: Na dzień dzisiejszy (20190920) wskazują, że naprawili podstawowy problem, więc spodziewałbym się, że przyszłe wydanie gradle po dzisiejszym dniu (20190920) będzie zawierać poprawkę.

Aktualizacja2: Dzisiaj (20190926) otrzymałem odpowiedź od pracownika Google, że problematyczny kod znajduje się w Android Studio i jest zawarty w gałęzi wersji 3.6, ale nie jest dostępny w żadnej publicznie dostępnej kompilacji (Android Studio 3.6 Canary 12 był wydany tuż przed wprowadzeniem tej poprawki). Dzięki temu wiesz, który komponent zaktualizować i na które wersje zwrócić uwagę. Wygląda na to, że Android Studio 3.6 Canary 13 i nowsze wersje powinny mieć to https://issuetracker.google.com/issues/140403764#comment13

Do tego czasu możesz wypróbować obejścia, ale jeśli wystąpi błąd dostawcy i obejścia nie działają, wystarczy poczekać na poprawkę dostawcy.



4

Po raz pierwszy napotkałem ten problem po dzisiejszej aktualizacji z Android Studio 3.5.0 do 3.5.1.

Po prostu dokonałem przebudowy z górnego menu Build -> Rebuild Project.

To może nie działać dla wszystkich, w zależności od tego, co spowodowało problem, ale zadziałało w moim. Spróbuj.

(Ponadto nie używam NDK i nigdy wcześniej go nie pobrałem. Nadal nie mam go pobranego)


1
Używam AS 3.5.1, mój projekt wymaga NDK. Otrzymałem dokładny błąd, wyczyść i odbuduj, napraw go. Wystarczająco łatwiej, aby spróbować najpierw, zanim zrobisz cokolwiek innego.
— Sean

@Sean Nice, cieszę się, że zadziałało! Swoją drogą, myślę, że odbudowa również zaczyna się od czyszczenia. Zrozumiałem to raz, gdy miałem otwarty dolny pasek narzędzi kompilacji i miał on „czysty” jako pierwsze zadanie. Od tego czasu zacząłem zajmować się tylko odbudową. (Mam nadzieję, że robi to, co myślę, że jest lol).
— Ryan

4

Jeśli nie używasz NDK, zignoruj ​​błąd.

Zainstalowałem NDK, aby sprawdzić, czy to robi jakąkolwiek różnicę. Nie ma różnicy (z wyjątkiem nieużywanego folderu NDK o pojemności ponad 2 GB :). Więc usunąłem go (tj. Skasowałem folder ndk i usunąłem zmienną środowiskową NDK, którą ustawiłeś wcześniej).


3

Naprawię to, przechodząc do file > Invalidate Caches\Restart IDE, uruchomię się ponownie i problem zostanie rozwiązany


przejdź do „file> project structre> SDK location” i pobierz ostatni NDK i przejdź do projektu „local.properties” i określ lokalizację NDK, na przykład „ndk.dir = C \: \\ Users \\ Lenovo \\ AppData \ \ Local \\ Android \\ Ndk '
— Hocine Djouamaa

To nie ma sensu, jeśli go nie używasz (NDK)
— Sahan Pasindu Nirmal

3

Po ostatniej aktualizacji Android Studio otrzymałem ten sam komunikat o błędzie. Wypróbowałem inne odpowiedzi tutaj i żadna nie działała. Ale odpowiedź @ Zahra wskazała mi coś, co zadziałało:

Idź do Plik-> Struktura projektu ... W " Lokalizacja Android NDK ", kliknij menu i wybierz opcję " DOMYŚLNIE zalecane NDK ".

Zanim wybrałem domyślną, była tam nieco inna ścieżka. Gdzieś podczas uaktualniania za pomocą menedżera SDK ścieżka wydaje się ulegać zmianie.

A teraz w pliku local.properties sdk.dir jest ustawiony na ten sam katalog, co opcja „ DEFAULT NDK Recommended ”.


Po wypróbowaniu co najmniej 5 różnych
— ``

2

Miałem ten sam problem. Moje środowisko to:

  • Android Studio 3.5.1
  • Gradle 4.4
  • Android-Gradle-Plugin 3.1.2
  • CMake 3.10 i 3.6.1

Odinstalowałem CMake 3.10 przez SDKManager. (zainstalowany CMake to tylko 3.6)

Synchronizacja i kompilacja Gradle powiodła się.

(1)

Android-gradle-plugin 3.1.2 używał CMake 3.10.

W android-gradle-plugin 3.1.2 (lub 3.1. +), Funkcją wsparcia dla CMake 3.7 i nowszych jest funkcja podglądu.

(z komunikatu wyjściowego gradle assembleDebugi gradle sync).

(2)

https://developer.android.com/studio/projects/add-native-code.html#use_a_custom_cmake_version

Menedżer SDK zawiera rozwidloną wersję CMake 3.6.0 i wersję 3.10.2. Projekty, które nie ustawiają określonej wersji CMake w build.gradle, są tworzone przy użyciu CMake 3.6.0.

Być może to zachowanie to Android-Gradle-Plugin 3.3 lub nowszy. (jest z android-studio 3.3, który można pobrać CMake 3.10)

Android-gradle-plugin 3.1.2 używał najnowszej wersji z zainstalowanego CMake.


Brakowało mi, że napisałeś „Gradle 3.5” i „build-gradle z powrotem do 3.4.2”.
— Yu Kakizaki

2

Miałem ten sam problem na komputerze Mac.

Sugestia: wymuś odbudowanie folderu .gradle.

To nadal pokazuje, że wersja NDK jest NIEZNANA w dzienniku zdarzeń, ale kompiluje się pomyślnie i nie powoduje żadnych problemów. (Nie mam pobranego NDK)

  1. Otwórz folder / Users / macuser /
  2. Naciśnij CMD + SHIFT +. (kropka / kropka), aby wyświetlić ukryte foldery
  3. USUŃ folder .gradle
  4. Uruchom ponownie Android Studio

Spowoduje to, że Android Studio odbuduje i ponownie pobierze folder .gradle, naprawiając konfliktowe pliki.


To zadziałało dla mnie, ale tylko za pierwszym razem. Gdybym ponownie otworzył projekt bez uprzedniego usunięcia .gradle, wystąpiłbym ten sam błąd, co poprzednio.
— Kyle Abens

Tak, wygląda na to, że błąd pozostanie w dzienniku. Mój również jest w toku, ale projekt buduje się i działa dobrze.
— Fox

1

Problem został rozwiązany, gdy jednocześnie zaktualizowałem wersję wtyczki Gradle Android z 3.1.4 do 3.4.0 i wersję Gradle z 4.4 do 5.1.1. Oczywiście pobrałem najnowszy NDK (Side by Side) z menedżerem SDK.


Musiałem także zaktualizować moją wersję Gradle
— BlackHatSamurai

1

Wystąpił ten sam błąd po dodaniu kilku bibliotek w build.gradlepliku na poziomie aplikacji.
Rozwiązaniem było po prostu wyczyszczenie projektu .
Na pasku menu wybierz: Build >> Clean Project
Po tym błąd zniknął. Nic innego nie zrobiłem.


1

W moim przypadku Android Studio zostało zainstalowane na nowym Macu. Wystarczy pobrać Androida 9 (mój docelowy / kompilowany SDK to 28) i zbudować narzędzia. Po tym problem został rozwiązany.


1

W moim przypadku naprawiam to poprzez aktualizację do SdkVersion 29 i migrację do AndroidX.


1
aktualizacja wersji docelowej i kompilacji do sdk 29 zadziałała dla mnie: D
— Ziad H.

0

Po aktualizacji mam ten sam problem w jednym z moich projektów. Rozwiązałem to po prostu usuwając wiersz ndk.dir = D: \ Android \ SDK \ ndk-bundle z pliku local.properties.


1
Odpowiedź może być bardziej wartościowa, jeśli wskażesz, skąd wiesz, gdzie znaleźć plik w Android Studio lub w systemie plików, a także uzasadnisz, że należy dokonać zmiany.
— Reenactor Rob

5
ndk.dir nie jest ustawiony w moich projektach. Nigdy nie korzystałem z NDK. Niemniej jednak pojawia się ten „błąd” w Android Studio 3.5.
— Niesamowity

Tak samo jak The Incredible Jan, nie było tego w moich local.properties, ale nadal otrzymuję tę wiadomość. Nie jest to więc pełne rozwiązanie, ale może niektórym mogłoby pomóc
— Mike Hardy

0

Otrzymałem ten błąd (i kilka innych) po zaimportowaniu projektu z kontroli wersji za pośrednictwem hiperłącza Bitbucket.

Po zaimportowaniu zamknij projekt i zaimportuj go ponownie za pomocą File > New > Import Project . Potem wszystko zostało poprawnie zbudowane. (Ścieżka NDK została już poprawnie określona, ​​a importowanie tylko jako nowe działało)

Meta: Android Studio 3.5 Build #AI-191.8026.42.35.5791312, built on August 8, 2019 JRE: 1.8.0_202-release-1483-b49-5587405 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o macOS 10.13.6 Gradle 3.4.0


0

Problem został rozwiązany po sprawdzeniu sugestii w strukturze projektu i zaktualizowaniu dwóch sugerowanych aktualizacji. Przepraszam, nie pamiętam nazw modułów, ponieważ zniknęły, gdy tylko nacisnąłem aktualizację dla każdego z nich i dokonałem synchronizacji. uruchomił się automatycznie i po tym, jak problem zniknął


0

obniżenie wersji ndk z 20 do r17c i cmake z 3.10 na 3.6.411459 rozwiązało problem za mnie


0

Miałem ten sam problem po aktualizacji Android Studio. Mój problem został rozwiązany po zaktualizowaniu Android SDK Build-Tools. [Narzędzia-> Menedżer SDK-> Narzędzia SDK-> Narzędzia do tworzenia zestawu SDK dla systemu Android].

Następnie spróbuj wyczyścić projekt [Build-> Clean Project].

Na koniec uruchom ponownie Android Studio IDE ......


0

Właśnie zamknąłem projekt, zamknąłem android studio, zrestartowałem komputer, prześledziłem projekt i usunąłem folder .Idea w „B: / NAZWA PROJEKTU/.idea” i voila.

Problem rozwiązany. Synchronizuje się ponownie. N / B: mój Gradle to Androidx. komuś powodzenia.


0

Zmień claaspath na „com.android.tools.build:gradle:3.5.2” w skrypcie build.gradle


0

Dobrze. Niedawno pobrałem najnowszą wersję Android Studio i otrzymałem podobny błąd. W końcu stworzyłem nowy projekt. Wybrany język Kotlin, a następnie Jelly Bean (rozmowa o opcjach do wyboru). Potem cała synchronizacja się rozpoczęła, ale pierwsza synchronizacja nie powiodła się i ostatecznie została ponownie automatycznie zsynchronizowana i wszystko zaczęło działać. Zmodyfikowałem domyślne kody (tekst), ponieważ jestem początkującym, ale nie otrzymałem żadnych komunikatów o błędach. Podgląd był OK i kontynuowałem naukę. Przepraszam, że nie mogłem tego lepiej wyjaśnić. Jestem tylko początkującym. O! Aby to działało, musisz mieć połączenie z Internetem.


0

Jeśli ten problem wystąpił po aktualizacji Android Studio i zainicjowałeś aktualizację wtyczki z prawego dolnego powiadomienia: Otwórz File > Project structure , a następnie zmień wersję Androida Gradle na wersję Android Studio i obniż wersję Gradle do poprzedniej.

W moim przypadku zdegradowałem wtyczkę Android Gradle z 3.5.3 do 3.2.1, a wersję Gradle z 5.4.1 na 4.6.


0

Zmodyfikowałem wersję gradle pliku gradle-wrapper.properties z 4.1 na 4.6.


0

Miałem ten problem i żadne z rozwiązań nie zadziałało. Problem polega na tym, że ten błąd lub ostrzeżenie może pojawić się z bardzo ogólnych powodów. Możesz wykonać następujące kroki, aby dowiedzieć się, co jest nie tak:

Brakuje NDK

Gdy Gradle zaczyna kompilować natywne zależności, tworzy folder „.cxx” w folderze „app”. w tym folderze można znaleźć plik „ndk_locator_record.json”, który jest bardzo dziwnym typem pliku dziennika. Są to w zasadzie wszystkie ścieżki, które Gradle sprawdza, aby znaleźć folder NDK. Jeśli jest jakiś błąd lub niezgodność w numerach wersji NDK, możesz zobaczyć w tym pliku.

Kompilacja NDK kończy się niepowodzeniem

z nieznanych powodów (może błąd w Gradle) ndk build nie pokazuje rzeczywistego błędu w oknie dziennika zdarzeń, zamiast tego pokazuje błąd, na przykład niepowodzenie synchronizacji Gradle: wykonanie zewnętrznej natywnej kompilacji dla ndkBuild .... po rozwiązaniu NDK Wynik: Projekt ustawienia: wersja modelu Gradle = 5.4.1, wersja NDK jest NIEZNANA .

W takim przypadku wróć do .cxx> ndkBuild> debug> x86 (x64 lub jakikolwiek inny arch cpu) W tym folderze możesz znaleźć plik "json_generation_record.json", jest to ten sam typ dziennika, zwykle ostatni wpis zawiera rzeczywisty błąd . Na przykład dla mnie był

 ../../sdk/native/jni/OpenCV.mk: No such file or directory
 make: *** No rule to make target '../../sdk/native/jni/OpenCV.mk'.  Stop.

Stąd masz punkt wyjścia, aby dowiedzieć się, co się dzieje pod maską.


0

Jeśli NDK nie jest zainstalowany, a projekt Android tego wymaga, najpierw zainstaluj NDK.

W systemie operacyjnym Windows dodaj ścieżkę NDK do zmiennej środowiskowej PAT H. To rozwiąże problem z wersją.

W moim przypadku ścieżka NDK to C: \ Users \\ AppData \ Local \ Android \ Sdk \ ndk \ 21.0.6113669


0

Wcześniej napotkałem ten problem i naprawiłem go, upewniając się, że mam odpowiednie uprawnienia do katalogu aplikacji.

Używam macOS, więc zrobiłem:

chmod -R 777 your_android_project

i problem zniknął.


-1

Ja też mam ten problem, kiedy zaktualizowałem wtyczkę Android Gradle z 3.1.2 do 3.5.1

Oto jak rozwiązać ten problem:

Przejdź do gradle.properties filefolderu głównego swojego projektu i dodajandroid.useDeprecatedNdk=true

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.