nieznana właściwość „supportLibVersion” dla obiektu typu org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

15

Otrzymuję następujący błąd

Nie można uzyskać nieznanej właściwości „supportLibVersion” dla obiektu typu org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHand

Pracuję nad aplikacją Reaktywny-Natywny, a poniżej zależności Reakcyjnie-natywnych map występują błędy

 dependencies {
      def supportLibMajorVersion = supportLibVersion.split('\\.')[0] as int
      def appCompatLibName =  (supportLibMajorVersion < 20) ? "androidx.appcompat:appcompat" : "com.android.support:appcompat-v7"
      implementation "$appCompatLibName:$supportLibVersion"
      implementation('com.facebook.react:react-native:+') {
        exclude group: 'com.android.support'
      }
      implementation "com.google.android.gms:play-services-base:${safeExtGet('playServicesVersion', '16.1.0')}"
      implementation "com.google.android.gms:play-services-maps:${safeExtGet('playServicesVersion', '16.1.0')}"
      implementation 'com.google.maps.android:android-maps-utils:0.5'
    }

Czy ktoś ma pojęcie, co tu jest nie tak?

Błąd w terminalu to

BŁĄD: kompilacja nie powiodła się z wyjątkiem.

Gdzie:
Kompiluj plik „D: \ reaguj natywny \ abhishek \ Gwala \ moduły_węzła \ reaguj-natywny-mapy \ lib \ android \ build.gradle”: 20

Co poszło nie tak:
Wystąpił problem podczas oceny projektu „: reaguj-natywne-mapy”.
Nie można uzyskać nieznanej właściwości „supportLibVersion” dla obiektu typu org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

linia 20 jest

def supportLibMajorVersion = supportLibVersion.split('\\.')[0] as int
Abhishek Yadav
źródło

Odpowiedzi:

30

Dodaj w supportLibVersion = "28.0.0"środku android/build.gradle->ext

przykład:

ext {
  buildToolsVersion = "28.0.3"
  minSdkVersion = 16
  compileSdkVersion = 28
  targetSdkVersion = 28
  supportLibVersion = "28.0.0"
}
Dhaval Kotecha
źródło
Cześć @Dhaval, dziękuję za odpowiedź. Czy mógłbyś edytować swój post z wyjaśnieniem, które może nauczyć innych, w jaki sposób twoja odpowiedź rozwiązuje dany problem?
Rob Streeting
pracował dla mnie. wystarczy dodać supportLibVersion = "28.0.0" do sekcji ext w pliku build.gradle.
Batuhan Akkaya
Dzięki. Aby wszystko było bardziej zrozumiałe, plik build.gradle, który ma być edytowany, jest plikiem dla Androida, a nie dla Androida / aplikacji. android / build.gradle ma na wierzchu buildscript {ext {}}.
Brian Hong
@Mahdi Dzięki po dwóch dniach zmagań w końcu otrzymuję odpowiedź, czy to zadziała również w
iOS
@Mahdi, jeśli tworzę nowy projekt i dodam reaguj-natywne-mapy, to działa dobrze, jeśli używam mojego starego projektu, pojawia się błąd. nie wiem dlaczego
Puneet Kansal
3

Spróbuj zainstalować go bezpośrednio z github:

npm install --save git+https://[email protected]/react-native-community/react-native-maps.git

Irfan Khan
źródło
Dzięki, zadziałało :)
Anshuman Pattnaik
2

Rozwiązałem ten problem po wykonaniu następujących kroków:

  1. Dodaj tę linię do \node_modules\react-native-maps\lib\android\build.gradle -- line: 20

    def supportLibVersion = safeExtGet('supportLibVersion', '28.0.0')

  2. W AndroidManifest.xmlponiżej <application>:

    <uses-library android:name="org.apache.http.legacy" android:required="false"/>

Abdumutal Abdusamatov
źródło
0

W pliku build.gradle w katalogu Androida

(... / YourApp / android / build.gradle)

znajdź sekcję ext i dodaj

supportLibVersion = "28.0.0" ext {... supportLibVersion = "28.0.0"}

to powinno wystarczyć.

Roberto Ruiz Go
źródło