Pertanyaan Bagaimana cara menambahkan proyek perpustakaan ke Android Studio?


Bagaimana cara menambahkan proyek perpustakaan (seperti Sherlock ABS) ke Android Studio?

(Tidak pada bundle berbasis Eclipse ADT yang lama, tetapi untuk yang baru Android Studio.)


740
2018-05-16 12:55


asal


Jawaban:


Pembaruan untuk Android Studio 1.0

Sejak Android Studio 1.0 dirilis (dan banyak versi antara v1.0 dan salah satu yang pertama dari waktu jawaban saya sebelumnya) beberapa hal telah berubah.

Deskripsi saya difokuskan pada penambahan proyek perpustakaan eksternal dengan tangan melalui file Gradle (untuk lebih memahami prosesnya). Jika Anda ingin menambahkan perpustakaan melalui pencipta Android Studio, periksalah jawabannya di bawah ini dengan panduan visual (ada beberapa perbedaan antara Android Studio 1.0 dan yang berasal dari screenshot, tetapi prosesnya sangat mirip).

Sebelum Anda mulai menambahkan pustaka ke proyek Anda dengan tangan, pertimbangkan untuk menambahkan ketergantungan eksternal. Ini tidak akan mengacaukan struktur proyek Anda. Hampir setiap pustaka Android terkenal tersedia di a Maven repositori dan instalasinya hanya membutuhkan satu baris kode di app/build.gradle mengajukan:

dependencies {
     compile 'com.jakewharton:butterknife:6.0.0'
}

Menambah perpustakaan

Berikut ini adalah proses lengkap penambahan pustaka Android eksternal ke proyek kami:

  1. Buat proyek baru melalui pembuat Android Studio. Saya menamainya Halo Dunia.
  2. Berikut adalah struktur proyek asli yang dibuat oleh Android Studio:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Di direktori root (HelloWorld/), buat folder baru: /libs di mana kami akan menempatkan pustaka eksternal kami (langkah ini tidak diperlukan - hanya untuk menjaga struktur proyek yang lebih bersih).
  2. Tempelkan pustaka Anda di yang baru dibuat /libs map. Dalam contoh ini saya menggunakan PagerSlidingTabStrip perpustakaan (cukup unduh ZIP dari GitHub, ganti nama direktori pustaka ke "PagerSlidingTabStrip" dan salin). Inilah struktur baru proyek kami:
HelloWorld/
      app/
           - build.gradle  // Local Gradle configuration (for app only)
           ...
      libs/
           PagerSlidingTabStrip/
                - build.gradle // Local Gradle configuration (for library only)
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Edit settings.gradle dengan menambahkan library Anda include. Jika Anda menggunakan jalur khusus seperti yang saya lakukan, Anda juga harus menentukan direktori proyek untuk perpustakaan kami. Seluruh setting.gradle harus seperti di bawah ini:

    include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
    

5.1 Jika Anda menghadapi galat "Default Configuration", coba ini bukan langkah 5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. Di app/build.gradle tambahkan proyek perpustakaan kami sebagai ketergantungan:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(":PagerSlidingTabStrip")
    }
    

6.1. Jika Anda mengikuti langkah 5.1, maka ikuti ini bukan 6,

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'

        compile project(":libs:PagerSlidingTabStrip")
    }
  1. Jika proyek perpustakaan Anda tidak ada build.gradle file Anda harus membuatnya secara manual. Berikut ini contoh file itu:

        apply plugin: 'com.android.library'
    
        dependencies {
            compile 'com.android.support:support-v4:21.0.3'
        }
    
        android {
            compileSdkVersion 21
            buildToolsVersion "21.1.2"
    
            defaultConfig {
                minSdkVersion 14
                targetSdkVersion 21
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    res.srcDirs = ['res']
                }
            }
        }
    
  2. Selain itu Anda dapat membuat konfigurasi global untuk proyek Anda yang akan berisi versi SDK dan membuat versi alat untuk setiap modul untuk menjaga konsistensi. Cukup edit gradle.properties file dan tambahkan baris:

    ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21
    

    Sekarang Anda dapat menggunakannya di Anda build.gradle file (di app dan pustaka modul) seperti di bawah ini:

    //...
    android {
        compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
    
        defaultConfig {
            minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
            targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
        }
    }
    //...
    
  3. Itu saja. Cukup klik ‚sinkronkan proyek dengan ikon Gradle synchronise with Gradle. Perpustakaan Anda harus tersedia di proyek Anda.

Google I / O 2013 - Sistem Pembuatan SDK Android Baru  adalah presentasi yang hebat tentang membangun aplikasi Android dengan Sistem Gradle Build: Seperti yang dikatakan Xavier Ducrohet:

Android Studio adalah semua tentang pengeditan, dan debugging dan profil.   Ini bukan tentang membangun lagi.

Pada awalnya mungkin sedikit membingungkan (terutama bagi mereka yang bekerja dengan Gerhana dan belum pernah melihat semut - seperti saya;)), tetapi pada akhirnya, Gradle memberi kita beberapa peluang besar dan perlu dipelajari sistem membangun ini.


687
2018-05-19 20:35



Ini panduan visualnya:

Memperbarui untuk Android Studio 0.8.2:

Di Android Studio 0.8.2, buka Struktur Proyek -> di bawah Modul tekan saja tombol plus dan pilih Proyek Impor yang Ada dan impor actionbarsherlock. Kemudian sinkronkan file Gradle Anda.

Jika Anda menghadapi kesalahan

Kesalahan: SDK Build Tools revision (xx.x.x) terlalu rendah. Minimum   yang dibutuhkan adalah yy.y.y

buka saja build.gradle file di actionbarsherlock direktori dan perbarui buildToolsVersion ke yang disarankan.

android {
  compileSdkVersion 19
  buildToolsVersion 'yy.y.y'

Android Studio 0.8.2


Menu Mengajukan -> Struktur Proyek ...:

First

Modul -> Modul Impor

Second

Setelah mengimpor modul perpustakaan, pilih anda modul proyek dan tambahkan ketergantungan:

Third

Dan kemudian pilih modul yang diimpor:

Forth


264
2018-05-19 12:33



Gunakan menu Mengajukan -> Struktur Proyek -> Modul.

Saya mulai menggunakannya hari ini. Ini sedikit berbeda.

Untuk Sherlock, mungkin Anda ingin menghapus direktori uji mereka, atau menambahkan junit.jar file ke classpath.

Untuk mengimpor pustaka menggunakan gradle, Anda dapat menambahkannya ke dependencies bagian dari Anda build.gradle (yang modul).

Misalnya.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.0'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}

Android Studio berubah.

Ada bagian bernama "Buka pengaturan modul" jika Anda klik kanan pada folder modul di bagian proyek Android Studio (Saya menggunakan versi 0.2.10).


107
2018-05-16 12:57



Saya akan mempertimbangkan Dependensi, Pustaka Android, dan Penyiapan multi-proyek bacaan yang diperlukan. Harap luangkan beberapa menit untuk melakukannya.

Khususnya, dalam kasus proyek perpustakaan non-jar, baca cuplikan berikut dari sumber di atas:

Proyek Gradle juga dapat bergantung pada proyek gradle lainnya dengan menggunakan pengaturan multi-proyek.   Pengaturan multi-proyek biasanya bekerja dengan membuat semua proyek sebagai sub-folder dari proyek root tertentu.

Misalnya, diberikan kepada struktur berikut:

MyProject/
 + app/
 + libraries/
    + lib1/
    + lib2/

Kami dapat mengidentifikasi 3 proyek. Gradle akan mereferensikannya dengan nama berikut:

:app
:libraries:lib1
:libraries:lib2

Setiap proyek akan memiliki build.gradle sendiri yang menyatakan cara pembuatannya.   Selain itu, akan ada file bernama settings.gradle di root yang menyatakan proyek.   Ini memberikan struktur berikut:

MyProject/
 | settings.gradle
 + app/
    | build.gradle
 + libraries/
    + lib1/
       | build.gradle
    + lib2/
       | build.gradle

Isi dari settings.gradle sangat sederhana:

include ':app', ':libraries:lib1', ':libraries:lib2'

Ini mendefinisikan folder mana yang sebenarnya adalah proyek Gradle.

The: proyek aplikasi kemungkinan akan bergantung pada pustaka, dan ini dilakukan dengan mendeklarasikan dependensi berikut:

dependencies {
    compile project(':libraries:lib1')
}

Mohon dicatat bahwa ada sedikit atau tidak ada penggunaan Android Studio GUI untuk mewujudkan hal ini.

Saya sedang menggunakan submodul git untuk menautkan pustaka bersarang ke repositori git aktual untuk menghindari kekacauan ketergantungan.


49
2017-10-14 08:10



Saya baru saja menemukan cara yang lebih mudah (daripada menulis langsung ke file .gradle).

Ini untuk Android Studio 1.1.0.

  1. Menu Mengajukan -> Modul Baru ...:

    Import Existing Project

    Klik "Impor Proyek yang Ada".

  2. Pilih pustaka yang diinginkan dan modul yang diinginkan.

  3. Klik selesai. Android Studio akan mengimpor perpustakaan ke dalam proyek Anda. Ini akan menyinkronkan file gradle.

  4. Tambahkan modul yang diimpor ke dependensi proyek Anda.

    Klik kanan pada folder aplikasi -> Buka pengaturan Modul -> pergi ke tab dependensi -> Klik tombol '+' -> klik pada Ketergantungan Modul.

    Modul perpustakaan akan ditambahkan ke dependensi proyek.

    Add library module

  5. ???

  6. Keuntungan


23
2018-06-29 16:49



Cara termudah saya temukan untuk menyertakan proyek perpustakaan eksternal adalah (misalnya untuk menyertakan perpustakaan Facebook yang disimpan satu direktori di folder dependensi):

  1. Dalam pengaturan. Tambahkan kelas

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
    
  2. Di bagian build.gradle dependencies, tambahkan

    compile project ('facebook')
    

Semua yang tersisa untuk dilakukan adalah menyinkronkan proyek dengan file gradle.


15
2017-08-08 19:58



Cara sederhana untuk menambahkan file JAR sebagai pustaka ke proyek Android Studio Anda:

a) Salin file * .jar Anda

b) Tempel ke dalam libs direktori di bawah proyek Anda:

Enter image description here

c) Tambahkan ke build.gradle:

dependencies {
    ...
    compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}

b) Jika proyek Anda dari contoh com.example.MYProject dan pustaka com.example.ScanAPI memiliki namespace com.example yang sama, Android Studio akan memeriksa bangunan Anda dan membuat semua perubahan yang diperlukan dalam proyek Anda. Setelah itu Anda bisa meninjau pengaturan ini di menu Mengajukan -> Struktur Proyek.

c) Jika proyek dan pustaka Anda memiliki namespace yang berbeda Anda harus klik kanan pada perpustakaan dan pilih opsi "Tambah sebagai Perpustakaan" dan pilih jenis yang Anda butuhkan.

Ingat opsi "Struktur proyek" tidak melakukan perubahan otomatis apa pun di "build.gradle" dalam versi Android Studio saat ini (0.2.3). Mungkin fitur ini akan tersedia di versi berikutnya.


13
2017-08-27 21:40



Opsi 1: Jatuhkan File ke direktori libs / proyek

File build.gradle yang relevan kemudian akan diperbarui secara otomatis.

Opsi 2: Ubah file build.gradle secara Manual

Buka file build.gradle Anda dan tambahkan aturan build baru ke penutupan dependensi. Misalnya, jika Anda ingin menambahkan Layanan Google Play, bagian dependensi proyek Anda akan terlihat seperti ini:

dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile 'com.google.android.gms:play-services:6.5.+'
   }

Opsi 3: Gunakan Antarmuka Pengguna Android Studio

Di panel Project, Kontrol + klik modul yang ingin Anda tambahkan ketergantungannya dan pilih Buka Pengaturan Modul.

Enter image description here

Pilih tab Dependensi, diikuti oleh tombol + di sudut kiri bawah. Anda dapat memilih dari daftar opsi berikut:

  • Ketergantungan Perpustakaan
  • Ketergantungan File
  • Ketergantungan Modul

Anda kemudian dapat memasukkan informasi lebih lanjut tentang ketergantungan yang ingin Anda tambahkan ke proyek Anda. Misalnya, jika Anda memilih Ketergantungan Perpustakaan, Android Studio menampilkan daftar pustaka untuk Anda pilih.

Setelah Anda menambahkan ketergantungan Anda, periksa file build.gradle level modul Anda. Ini seharusnya secara otomatis diperbarui untuk menyertakan ketergantungan baru.

Sumber


11
2018-04-03 06:32



Jika Anda memerlukan akses ke sumber daya dari proyek perpustakaan (seperti yang Anda lakukan dengan ABS) pastikan bahwa Anda menambahkan proyek / modul perpustakaan sebagai "Ketergantungan Modul" bukan "Perpustakaan".


8
2018-05-19 01:04



Ini cara kerjanya untuk saya di Android Studio 1.5

Dalam proyek di mana Anda ingin menambahkan proyek perpustakaan eksternal, pergi ke menu Mengajukan -> Baru -> * Impor Modul baru **, navigasikan ke proyek perpustakaan yang ingin Anda tambahkan ke proyek Anda, pilih untuk menambahkan modul 'perpustakaan' dalam proyek Anda. Kamu akan mendapatkan settings.gradle dalam proyek Anda, di samping aplikasi, termasuk pustaka, sesuatu seperti ini:

include ':app', ':library'

Menambahkan build.gradle (Modul: aplikasi) di bagian dependensi:

Proyek kompilasi (': perpustakaan')

Rebuild proyek, dan hanya itu.

* Anda dapat menambahkan banyak pustaka (modul) seperti yang Anda inginkan. Dalam hal ini di settings.gradle Anda akan memiliki:

 include ':app', ':lib1', ':lib2', ...

Dan dalam build.gradle, Anda harus memiliki:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}

8
2017-12-11 15:04



  1. tekan F4 memperlihatkan Struktur Proyek, klik pustaka atau pustaka Global, dan klik + untuk menambahkan file JAR.
  2. Klik Modul apa yang ingin Anda tambahkan guci, pilih Dependensi tab, klik +, dan tambahkan Perpustakaan.

6
2018-05-16 13:26