ไม่รู้จักคุณสมบัติ 'supportLibVersion' สำหรับวัตถุประเภท org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler


15

ฉันได้รับข้อผิดพลาดดังต่อไปนี้

ไม่สามารถรับคุณสมบัติที่ไม่รู้จัก 'supportLibVersion' สำหรับวัตถุประเภท org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHand

ฉันกำลังทำงานกับแอปพลิเคชั่นที่มีการตอบสนองดั้งเดิมและการพึ่งพาการตอบสนองต่อแผนที่มีอยู่ด้านล่างซึ่งฉันได้รับข้อผิดพลาด

 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'
    }

ทุกคนมีความคิดว่าเกิดอะไรขึ้นที่นี่

ข้อผิดพลาดใน terminal คือ

FAILURE: บิลด์ล้มเหลวโดยมีข้อยกเว้น

สถานที่:
สร้างไฟล์ 'D: \ react native \ abhishek \ Gwala \ node_modules \ react-native-maps \ lib \ android \ build.gradle' บรรทัด: 20

เกิดข้อผิดพลาด:
เกิดปัญหาในการประเมินโครงการ ': react-native-maps'
ไม่สามารถรับคุณสมบัติที่ไม่รู้จัก 'supportLibVersion' สำหรับวัตถุประเภท org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

บรรทัด 20 คือ

def supportLibMajorVersion = supportLibVersion.split('\\.')[0] as int

คำตอบ:


30

เพิ่มsupportLibVersion = "28.0.0"ภายในandroid/build.gradle->ext

ตัวอย่าง:

ext {
  buildToolsVersion = "28.0.3"
  minSdkVersion = 16
  compileSdkVersion = 28
  targetSdkVersion = 28
  supportLibVersion = "28.0.0"
}

สวัสดี @ Dhaval ขอบคุณสำหรับคำตอบของคุณ คุณต้องการแก้ไขการโพสต์ของคุณด้วยคำอธิบายที่สามารถสอนคนอื่น ๆ ว่าคำตอบของคุณแก้ปัญหาได้อย่างไร
Rob Streeting

ทำงานให้ฉัน เพียงเพิ่ม supportLibVersion = "28.0.0" เพื่อขยายส่วนในไฟล์ build.gradle
Batuhan Akkaya

ขอบคุณ เพื่อให้สิ่งต่าง ๆ ชัดเจนยิ่งขึ้นไฟล์ build.gradle ที่จะแก้ไขเป็นไฟล์เดียวใน android ไม่ใช่ใน android / app android / build.gradle มี buildscript {ext {}} อยู่ด้านบน
Brian Hong

@ Mahah ขอบคุณหลังจากการต่อสู้สองวันในที่สุดได้รับคำตอบคือนี้จะทำงานได้ดีใน iOS ของคุณด้วย
Puneet Kansal

@Mahdi ถ้าฉันกำลังสร้างโครงการใหม่และเพิ่ม react-native-maps จากนั้นก็ใช้งานได้ดีถ้าฉันใช้โครงการเก่าของฉันแล้วฉันได้รับข้อผิดพลาด ฉันไม่รู้ว่าทำไม
Puneet Kansal



2

ฉันแก้ไขปัญหานี้หลังจากขั้นตอนเหล่านี้:

  1. เพิ่มบรรทัดนี้ไปที่ \node_modules\react-native-maps\lib\android\build.gradle -- line: 20

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

  2. ในAndroidManifest.xmlใต้<application>:

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



0

ในไฟล์ build.gradle ของคุณภายในไดเรกทอรี android

( ... / YourApp / Android / build.gradle)

ค้นหาส่วนต่อและเพิ่ม

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

ที่ควรทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.