Po aktualizacji Android Studio do wersji 1.3.0 otrzymuję komunikat „Integracja NDK jest przestarzała w obecnej wtyczce” Błąd


89

Zaktualizowałem moje Android Studio do wersji 1.3.0 przed upływem 3 dni.

Wcześniej mogę używać NDK, a teraz pojawia się błąd, taki jak:

Błąd: (50, 0) Błąd: integracja NDK jest przestarzała w bieżącej wtyczce. Rozważ wypróbowanie nowej eksperymentalnej wtyczki. Aby uzyskać szczegółowe informacje, zobacz http://tools.android.com/tech-docs/new-build-system/gradle-experimental . Ustaw „android.useDeprecatedNdk = true” w gradle.properties, aby nadal korzystać z bieżącej integracji NDK.

Nie mogę znaleźć pliku gradle.property na poziomie projektu.

Jak mogę rozwiązać ten błąd?



@ EthicsDev: przeczytaj moją w pełni opisową odpowiedź.
AndiGeeky

Czy to błąd czy tylko ostrzeżenie?
IgorGanapolsky

@ Igor Ganapolsky: To błąd .. !!
AndiGeeky

Odpowiedzi:


214

Oto jak rozwiązać ten problem:

  1. dodaj gradle.propertiesplik do folderu głównego projektu
  2. dodaj 'android.useDeprecatedNdk=true'do gradle.propertiespliku

Oto moje gradle.properties:

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

android.useDeprecatedNdk=true

I dodaj go do katalogu głównego swojego projektu:

lokalizacja gradle.properties

I odbuduj swój projekt. Otóż ​​to.


po jego dodaniu mam następujący błąd: wyjątek podczas pracy z systemem zewnętrznym:
Kishan Soni

@Kishan Soni: Zadaj pytanie w swoim pliku gradle .. Wystąpi błąd w Twoim projekcie .. !!
AndiGeeky

Za każdym razem, gdy zmieniam wtyczkę gradle na 1.2.3, wszystko działa dobrze, ale jeśli zmienię wersję wtyczki na 1.5.0, ponownie pojawia się błąd. Ale muszę używać tylko 1.5.0, ale nic nie działa dobrze.
Kishan Soni

@Kishan Soni: W przypadku wersji 1.2.3 powyżej, musisz użyć „Experimental plugin” dla NDK .. !!
AndiGeeky

1
Masz jakiś pomysł, jak używać lub pracować z "Experimental Pugin", jest to dość trudne i nie znalazłem na ten temat żadnego poradnika :(
Kishan Soni

3

Dzieje się tak najczęściej, gdy przenosisz projekt z eclipse do studia Android lub po prostu importujesz projekt eclipse w Android Studio.

Jeszcze jeden problem podczas otrzymywania tego błędu, przeważnie nie masz pliku o nazwie "gradle.properties", musisz najpierw utworzyć / dodać do projektu, a następnie ustawić

android.useDeprecatedNdk=true

2

Przestarzały NDK nie jest już obsługiwany. Aby uniknąć tego błędu, usuń android.useDeprecatedNdk = true i nie rób żadnych spacji w katalogu projektu. Jeśli błędy pojawią się ponownie, edytuj plik build.gradle (Moduł: aplikacja) i dodaj te linie, jak poniżej:

 buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets { main { jni.srcDirs = ['src/main/jni/','src/main/jniLibs/'] } }
externalNativeBuild {
    ndkBuild {
        path 'build/intermediates/ndk/debug/Android.mk'
    }
}

0

Oto jak rozwiązać ten problem:

Przejdź do pliku gradle.properties do folderu głównego projektu Usuń android.useDeprecatedNdk=truez gradle.propertiespliku

Android został usunięty, android.useDeprecatedNdkwięc nie będzie już działać

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.