นำเข้าที่เก็บจาก github ใน gradle

ฉันกำลังสร้างไลบรารี่ Android แบบโต้ตอบซึ่งขึ้นอยู่กับ:

dependencies {
    compile 'com.google.maps.android:android-maps-utils:0.5'
}

ปรากฎว่า android-maps-utils ไม่ทำงานอย่างที่ฉันต้องการ ฉันแยกมันและฉันต้องการใช้เวอร์ชันของไลบรารี่นี้แทนเวอร์ชันทางการ ฉันหาวิธีดำเนินการไม่ได้ ฉันค้นหาวิธีนำเข้าไลบรารีจาก github ภายใน gradle และพบ ajoberstar/gradle-git แต่ไม่มีคำแนะนำที่ชัดเจนเกี่ยวกับวิธีการทำ และตัวอย่างทั้งหมดที่ฉันพบไม่ได้ผลสำหรับฉัน (ตัวอย่างอันนี้: Gradle: วิธีโคลน repo git ในงานได้อย่างไร) มีวิธีที่ง่ายกว่านี้ในการทำสิ่งนั้นให้สำเร็จหรือไม่?

แก้ไข:

นี่คือโครงสร้างของฉัน (ประยุกต์):

root:
| build.gradle
| settings.gradle
| aars
 | map-util.aar
| libs
 | android
  | build.gradle

รูต build.gradle -> repositories { flatDir { dirs 'aars' } }

settings.gradle ->

include ":react-native-maps-lib"
project(":react-native-maps-lib").projectDir = file("./lib/android")

android/build.grandle -> compile(name: "map-util", ext:"aar")


person bumbur    schedule 23.10.2017    source แหล่งที่มา


คำตอบ (2)


อ้างอิง AAR ที่คุณสร้างจากการสร้างซอร์สทางแยกที่ใดที่หนึ่งบนระบบไฟล์ในเครื่องของคุณ

repositories {
   flatDir {
       dirs 'libs'
   }
}

จากนั้นใส่สิ่งประดิษฐ์ใน .../libs และเพิ่มตามปกติในการขึ้นต่อกันของคุณ แน่นอนว่าจะต้องจับคู่เวอร์ชันกับสิ่งที่คุณเพิ่งสร้างขึ้น

person Jeffrey Blattman    schedule 23.10.2017
comment
ฉันลองวิธีแก้ปัญหาของคุณแล้ว มันใช้งานไม่ได้หรือทำอะไรผิด (ฉันอัปเดตโพสต์ของฉัน) โครงการแปลก ๆ ใดที่ตัวเองสร้างได้สำเร็จ แต่มันล้มเหลวเมื่อใช้ในโปรเจ็กต์แบบโต้ตอบดั้งเดิมของฉัน (พร้อมข้อผิดพลาด 'ไม่พบ map-util ') - person bumbur; 25.10.2017
comment
นี่คือปัญหาของฉันอย่างแน่นอน: github.com/facebook/react-native/issues/15854 คุณช่วยแนะนำวิธีอื่นให้ฉันบรรลุผลตามที่ฉันต้องการได้ไหม - person bumbur; 25.10.2017
comment
ฉันขอแนะนำให้ลองใช้โปรเจ็กต์ Android รุ่นเก่าธรรมดาเพื่อทำความเข้าใจว่าปัญหาเป็นเรื่องทั่วไปหรือเกี่ยวข้องกับการตอบสนองหรือไม่ - person Jeffrey Blattman; 26.10.2017

ฉันเข้าใจแล้วว่าปัญหาคืออะไร! ก่อนอื่นให้ฉันชี้แจงให้ชัดเจนว่าฉันต้องการทำอะไร - ฉันกำลังสร้างโปรเจ็กต์แบบเนทีฟแบบโต้ตอบ มันใช้ react-native-maps เวอร์ชันแยกของฉันซึ่งใช้ android-maps-utils ฉันต้องการแยก android-maps-utils และใช้เวอร์ชันที่แยกของฉัน

android-maps-utils สร้างไฟล์ aar ที่ฉันต้องการนำเข้าในเครื่อง ทำตามคำแนะนำของ Jeffrey Blattman ฉันได้เพิ่มไดเรกทอรี libs ภายใน react-native-maps และใส่ไฟล์ aar ชื่อ android-maps-utils.aar ที่นั่น ฉันยังเพิ่มสิ่งนี้ลงใน react-native-maps build.gradle:

allprojects {
  repositories {
    ...
    flatDir {
      dirs "$rootDir/libs"
    }
  }
}

และสิ่งนี้ภายใน react-native-maps/android/build.gradle:

dependencies {
  ...
  compile(name: "android-maps-utils", ext:"aar")
}

ตอนนี้คอมไพล์ react-native-maps แต่โปรเจ็กต์ react-native ของฉันไม่ได้เกิดจาก:

A problem occurred evaluating project ':react-native-maps'.

ดังนั้นฉันจึงต้องรวมบรรทัดนี้ด้วย:

compile(name: "android-maps-utils", ext:"aar")

ภายในไดเร็กทอรี android ของแอปเนทีฟแบบตอบสนองของฉัน ตอนนี้ทุกอย่างรวบรวมแล้ว!

person bumbur    schedule 26.10.2017