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.