Bagaimana cara menambahkan proyek perpustakaan ke Android Studio?

796

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

(Bukan untuk bundel berbasis ADT Eclipse lama, tetapi ke Android Studio yang baru .)

Alexander Kulyakhtin
sumber
28
ya mencari tahu ini jauh lebih membingungkan daripada seharusnya ... tidak seperti itu lebih baik dalam gerhana.
Daniel Smith
4
Video YouTube Cara Menambahkan Perpustakaan ke Android Studio menjelaskan prosesnya.
2
Jika Anda menggunakan Gradle, lihat jawaban StackOverflow ini .
derek
2
Ini adalah video yang menurut saya sangat berguna: youtube.com/watch?v=1MyBO9z7ojk
Simon

Jawaban:

718

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 menambahkan proyek perpustakaan eksternal dengan tangan melalui file Gradle (untuk lebih memahami prosesnya). Jika Anda ingin menambahkan perpustakaan melalui pencipta Android Studio cukup periksa jawaban di bawah ini dengan panduan visual (ada beberapa perbedaan antara Android Studio 1.0 dan yang dari screenshot, tetapi prosesnya sangat mirip).

Sebelum Anda mulai menambahkan perpustakaan ke proyek Anda dengan tangan, pertimbangkan untuk menambahkan ketergantungan eksternal. Itu tidak akan mengacaukan dalam struktur proyek Anda. Hampir setiap perpustakaan Android yang terkenal tersedia dalam repositori Maven dan instalasinya hanya membutuhkan satu baris kode dalam app/build.gradlefile:

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

Menambahkan perpustakaan

Berikut adalah proses lengkap untuk menambahkan perpustakaan Android eksternal ke proyek kami:

  1. Buat proyek baru melalui pencipta Android Studio. Saya menamainya HelloWorld .
  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: /libsdi mana kami akan menempatkan perpustakaan eksternal kami (langkah ini tidak diperlukan - hanya untuk menjaga struktur proyek yang lebih bersih).
  2. Tempel perpustakaan Anda di /libsfolder yang baru dibuat . Dalam contoh ini saya menggunakan pustaka PagerSlidingTabStrip (cukup unduh ZIP dari GitHub, ubah nama direktori pustaka menjadi "PagerSlidingTabStrip" dan salin). Berikut adalah struktur baru dari 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 perpustakaan Anda ke include. Jika Anda menggunakan jalur khusus seperti yang saya lakukan, Anda juga harus menentukan direktori proyek untuk perpustakaan kami. Keseluruhan setting.gradle akan terlihat seperti di bawah ini:

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

5.1 Jika Anda menghadapi kesalahan "Konfigurasi Default", maka coba ini alih-alih langkah 5,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. Dalam app/build.gradlemenambahkan 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 bukannya 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 memiliki build.gradlefile, 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 versi alat bantu untuk setiap modul agar tetap konsisten. Cukup edit gradle.propertiesfile 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 build.gradlefile Anda (dalam modul aplikasi dan perpustakaan) 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 ' sinkronisasi dengan Gradle. Perpustakaan Anda harus tersedia di proyek Anda.

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

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

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

froger_mcs
sumber
6
hai di sana, Anda menjelaskan dengan sempurna masalah sebenarnya. memilih jawaban Anda sehingga orang lain dapat melihatnya. satu hal kecil yang tidak berhasil di pihak saya adalah referensi perpustakaan dukungan di build.gradle dependensi. ternyata ': Project / libs ...' tidak berfungsi karena suatu alasan. saya harus menghapus identifikasi proyek. jadi 'libs / ...'. dan itu dikompilasi dengan baik. satu catatan adalah bahwa kedua cara rujukan jalur atau proyek ini membingungkan. Saya harap skema sederhana dan terpadu muncul di masa depan. tidak ada alasan mengapa solusi asli tidak berfungsi.
pemenang n.
9
+1. Sedang berjuang dengan ini untuk waktu yang lama. Seperti yang dikatakan oleh pemenang , merujuk toples dukungan proyek utama dari modul actionbarsherlock tidak berfungsi. Saya harus melakukan yang berikut untuk membuatnya berfungsi ... (1) Hapus kompilasi file ('libs / android-support-v4.jar') dari build.gradle proyek. Modul utama seharusnya hanya memiliki proyek kompilasi (": libraries: actionbarsherlock") . (2) Tambahkan file kompilasi ('libs / android-support-v4.jar') daripada kompilasi file (': HelloWorld / libs / android-support-v4.jar') di build.gradle actionbarsherlock.
Akbar ibrahim
3
Di mana Global libraries(# 10: "sekarang buka Perpustakaan global")? Selain itu, berfungsi seperti yang dijelaskan :) Terima kasih banyak. (Saya harap Google akan membahasnya - tugas sederhana seperti ini sangat rumit saat ini)
Konrad Morawski
8
Mengapa saya tidak memiliki bagian "Impor Modul", pada opsi di mana Anda mengarahkan kami? Saya menggunakan Android Studio 0.3.1
alicanbatur
5
Opsi Impor Modul tidak ada !!
amalBit
274

Berikut ini panduan visualnya:

Pembaruan untuk Android Studio 0.8.2:

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

Jika Anda menghadapi kesalahan

Kesalahan: Revisi Alat Bangun SDK (xx.xx) terlalu rendah. Minimum yang diwajibkan adalah yy.yy

buka saja build.gradle file dalam actionbarsherlockdirektori dan perbarui buildToolsVersionke yang disarankan.

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

Android Studio 0.8.2


File Menu -> Struktur Proyek ... :

Pertama

Modul -> Modul Impor

Kedua

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

Ketiga

Dan kemudian pilih modul yang diimpor :

Keempat

Sam Rad
sumber
31
Opsi impor modul tidak tersedia di Android Studio4.3
amalBit
3
Kunci bagi saya untuk membuat pekerjaan ini dan menyelesaikan paket tidak menemukan kesalahan adalah langkahSelect your project module and add dependency dependencies { // ... compile project(':library') }
toobsco42
7
Ini akan menyalin modul perpustakaan di proyek Anda, yang bukan yang Anda inginkan jika Anda ingin basis kode bersama dibagi di antara beberapa proyek
Rémy DAVID
@amalBit, apakah ... Anda dari masa depan? Tapi serius, mereka perlu membuat ini sederhana seperti di Eclipse ADT; siapa yang ingin menekan repo pihak ketiga dan mengkompilasi (berpotensi) kode arbitrer ke dalam setiap build? Itu secara serius merusak protokol QA dan pembekuan kode
CCJ
Itu jauh kembali selama hari beta Android studio 0.4.3. Sedangkan untuk aksesi repo pihak ke-3, id say, hindari menggunakan +. Cukup tentukan versi yang Anda inginkan. Jika Anda masih tidak cukup mempercayainya, Anda dapat membuat toples (atau klon) dari repo apa pun dan menggunakannya.
amalBit
111

Gunakan menu File -> Struktur Proyek -> Modul .

Saya mulai menggunakannya hari ini. Ini sedikit berbeda.

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

Untuk mengimpor perpustakaan menggunakan gradle, Anda harus menambahkannya ke dependenciesbagian build.gradle(modul Anda).

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 sedang berubah.

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

Sabuk hitam
sumber
1
Hmm masih tertulis android-apt-compiler: styles.xml: 5: error: Error retrieving parent for item: Tidak ditemukan sumber daya yang cocok dengan nama yang diberikan 'Theme.Sherlock.Light.DarkActionBar'.
Alexander Kulyakhtin
Di bawah Modul Sherlock -> Dependecies Saya memiliki Android 4.2.2 dan dukungan Library v4
Blackbelt
@ ρяσѕρєяK di sebelah tombol jalankan, ada label dengan Android. Jika Anda klik di sana Anda akan menemukan Edit Konfigurasi. Tekan dan di bawah Perangkat Target klik pada "Show Chooser Dialg"
Blackbelt
7
Hai, saya memiliki masalah yang sama seperti Alex ("Gradle: Error retrieving parent for item: Tidak ditemukan sumber daya yang cocok dengan nama yang diberikan 'Theme.Sherlock.Light'.") - ketergantungan Java tampaknya dipecahkan dengan benar, menyebabkan IDE tidak menyalahkan SherlockActivity saya, tetapi untuk beberapa alasan Gradle tampaknya tidak melihat ke dalam sumber daya ABS. Ada ide?
ikan
4
Di Android Studio 0.2.8 tidak ada Modulesbagian di Project Structurejendela.
Konrad Morawski
52

Saya akan mempertimbangkan Dependensi, Perpustakaan Android, dan pengaturan multi-proyek bacaan yang diperlukan. Silakan 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. Setup multi-proyek biasanya bekerja dengan memiliki semua proyek sebagai sub folder dari proyek root yang diberikan.

Misalnya, diberikan kepada struktur berikut:

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

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

:app
:libraries:lib1
:libraries:lib2

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

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

Konten settings.gradle sangat sederhana:

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

Ini menentukan folder mana yang sebenarnya merupakan proyek Gradle.

Proyek: aplikasi kemungkinan bergantung pada perpustakaan, dan ini dilakukan dengan mendeklarasikan dependensi berikut:

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

Harap perhatikan bahwa ada sedikit atau tidak ada penggunaan Android Studio GUI untuk mewujudkan hal ini.

Saat ini saya menggunakan submit git untuk menghubungkan perpustakaan bersarang ke repositori git perpustakaan yang sebenarnya untuk menghindari kekacauan ketergantungan.

Jonathan Lin
sumber
Sangat membantu dan, yang lebih penting, tidak bermain untuk keinginan sehari-hari.
RichieHH
1
terima kasih banyak untuk memasukkan satu-satunya jawaban yang masuk akal. setiap jawaban lainnya sudah usang dan tidak berfungsi. Saya bahkan tidak mencoba di CS di Virginia Tech karena dua tahun pertama belajar untuk mengklik pada gerhana. itu tidak masuk akal fckn, tetapi melihat hasil gradle dari klik acak di IDE tidak.
dcunited001
Terima kasih atas tip submodules git. Saya menggunakan persimpangan sebelumnya, tetapi sekarang telah beralih ke eksternal SVN. Bekerja seperti pesona.
velis
25

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

Ini untuk Android Studio 1.1.0.

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

    Impor Proyek yang Ada

    Klik pada "Impor Proyek yang Ada".

  2. Pilih perpustakaan yang diinginkan dan modul yang diinginkan.

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

  4. Tambahkan modul yang diimpor ke dependensi proyek Anda.

    Klik kanan pada folder aplikasi -> Buka Pengaturan modul -> buka tab dependensi -> Klik tombol '+' -> klik Ketergantungan Modul.

    Modul perpustakaan akan ditambahkan ke dependensi proyek.

    Tambahkan modul perpustakaan

  5. ???

  6. Keuntungan

René Michel
sumber
17

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

  1. Dalam settings.gradle tambahkan

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

    compile project ('facebook')

Yang tersisa untuk dilakukan adalah menyinkronkan proyek dengan file gradle.

Vilen
sumber
Hai Vilen, apa itu pengaturanDir di sini
Rajnish Mishra
Hai Rajnish. Dari dokumentasi: settingsDir Mengembalikan direktori pengaturan build. Direktori pengaturan adalah direktori yang berisi file pengaturan. Pengembalian: Direktori pengaturan. Tidak pernah mengembalikan nol.
Vilen
Dua titik sebelum / dependensi lebih penting untuk diperhatikan. Jawaban Anda banyak membantu saya .. Terima kasih
Rajnish Mishra
CATATAN: untuk evaluasi string secara bertahap, Anda harus menggunakan penawaran ganda ("). Ini" selamatkan hari ini "untuk saya. Ditautkan dengan ini
Solata
15

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

a) Salin file * .jar Anda

b) Tempel ke direktori libs di bawah proyek Anda:

Masukkan deskripsi gambar di sini

c) Tambahkan ke build.gradle:

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

b) Jika proyek Anda dari contoh com.example.MYProyek dan perpustakaan 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 dapat meninjau pengaturan ini di File menu -> Struktur Proyek .

c) Jika proyek dan perpustakaan Anda memiliki ruang nama yang berbeda, Anda harus mengklik kanan pada perpustakaan dan memilih opsi "Tambahkan sebagai Perpustakaan" dan pilih jenis yang Anda butuhkan.

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

Eugene Bosikov
sumber
12

Opsi 1: Jatuhkan File ke direktori / direktori Project

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

Opsi 2: Memodifikasi 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 Proyek, Control+ klik modul yang ingin Anda tambahkan ketergantungannya dan pilih Buka Pengaturan Modul.

Masukkan deskripsi gambar di sini

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 perpustakaan yang dapat Anda pilih.

Setelah Anda menambahkan ketergantungan Anda, periksa file build.gradle tingkat modul Anda. Seharusnya secara otomatis diperbarui untuk memasukkan ketergantungan baru.

Sumber

pathe.kiran
sumber
10

Ini cara kerjanya untuk saya di Android Studio 1.5+

Dalam proyek tempat Anda ingin menambahkan proyek perpustakaan eksternal, buka menu File -> New -> * Import New Module **, navigasikan ke proyek perpustakaan yang ingin Anda tambahkan ke proyek Anda, pilih untuk menambahkan modul 'library' di proyek Anda. Anda akan mendapatkan settings.gradle di proyek Anda, di samping aplikasi, termasuk pustaka, sesuatu seperti ini:

include ':app', ':library'

Tambahkan build.gradle (Module: app) di bagian dependensi:

Kompilasi proyek (': perpustakaan')

Bangun kembali proyek, dan hanya itu.

* Anda dapat menambahkan perpustakaan (modul) sebanyak yang Anda inginkan. Dalam hal ini di settings.gradle Anda akan memiliki:

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

Dan di build.gradle, Anda harus memiliki:

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

    // Some other dependencies...

    compile project(':lib1')
    compile project(':lib2')
    ...
}
Beruang panda
sumber
9

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

drewan50
sumber
9

Anda dapat melakukan ini dengan mudah. Buka File menu -> Baru -> Modul Impor ... :

Masukkan deskripsi gambar di sini

Jelajahi direktori yang berisi modul. Klik Selesai:

Masukkan deskripsi gambar di sini

Pergi ke Struktur Proyek dan tambahkan Ketergantungan Modul :

Masukkan deskripsi gambar di sini

Catatan: Jika Anda menerima kesalahan SDK, perbarui yang itu.

Adiii
sumber
1
Menurut pendapat saya cara paling sederhana dan tercepat, masih bekerja sampai hari ini!
mrj
8
  1. Tekan F4untuk menampilkan Struktur Proyek , klik perpustakaan atau perpustakaan Global, dan klik+ untuk menambahkan file JAR.
  2. Klik Modul apa yang ingin Anda tambahkan tabung, pilih tab Ketergantungan , klik +, dan tambahkan Perpustakaan.
Crossle Song
sumber
6

Mengedit dependensi pustaka melalui GUI tidak disarankan karena tidak menulis perubahan tersebut ke file build.gradle Anda. Jadi proyek Anda tidak akan dibangun dari command-line. Kita harus mengedit file build.gradle secara langsung sebagai berikut.

Misalnya, diberikan kepada struktur berikut:

Proyek saya/

  • aplikasi/
  • perpustakaan /
    • lib1 /
    • lib2 /

Kami dapat mengidentifikasi tiga proyek. Gradle akan merujuk mereka dengan nama-nama berikut:

  1. :aplikasi
  2. : perpustakaan: lib1
  3. : libraries: lib2

Proyek: aplikasi kemungkinan bergantung pada perpustakaan, dan ini dilakukan dengan mendeklarasikan dependensi berikut:

dependencies {
    compile project(':libraries:lib1')
}
Shakti Malik
sumber
Betulkah? Aneh, mereka memiliki seluruh GUI dan itu tidak dianjurkan. Bagaimana?
Alexander Kulyakhtin
Karena mengedit melalui GUI tidak menulis perubahan itu ke file build.gradle Anda. Pengeditan GUI hanya menyimpan perubahan dalam data proyek IntelliJ sendiri. Ini adalah bug saat ini yang akan diperbaiki pada rilis mendatang. Anda dapat merujuk jawaban ini dari Google Android-Studio Team Lead stackoverflow.com/questions/16678447/…
Shakti Malik
5

Untuk menambah jawaban: Jika IDE tidak menunjukkan kesalahan, tetapi ketika Anda mencoba mengkompilasi, Anda mendapatkan sesuatu seperti:

No resource found that matches the given name 'Theme.Sherlock.Light'

Proyek perpustakaan Anda mungkin dikompilasi sebagai proyek aplikasi. Untuk mengubah ini, buka:

File Menu -> Struktur proyek -> Aspek -> [Nama perpustakaan] -> Periksa "Modul perpustakaan".

Dalma
sumber
5

First Way Ini berfungsi untuk MacBook.

Pertama pilih file builder.gradle Anda sebagai layar yang diberikan:

Masukkan deskripsi gambar di sini

Tambahkan dependensi seperti pada layar yang dipilih:

Masukkan deskripsi gambar di sini

Pilih proyek sinkronisasi.

Jika Anda mendapatkan kesalahan seperti "Project with path ': signature-pad' tidak dapat ditemukan di project ': app'", maka silakan gunakan cara kedua:

Pilih menu File -> New -> Import Module ... :

Masukkan deskripsi gambar di sini

Setelah mengklik Modul Impor ,

Masukkan deskripsi gambar di sini

berikan path perpustakaan seperti jalur MacBook saya:

Masukkan deskripsi gambar di sini

Klik pada Selesai . Sekarang perpustakaan Anda ditambahkan.

Hemant
sumber
4

Setelah mengimpor Modul ABS (dari File> Struktur Proyek) dan memastikan itu memiliki Android 2.2 dan Support Library v4 sebagai dependensi, saya masih mendapatkan kesalahan berikut saat Anda @Alex

Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'

Saya menambahkan modul yang baru diimpor sebagai ketergantungan pada modul aplikasi utama saya dan itu memperbaiki masalah.

Erwan
sumber
Saya mencoba semua langkah termasuk menambahkan modul sebagai dependensi tetapi saya masih punya Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.. Sepertinya proyek utama saya tidak melihat sumber daya proyek perpustakaan (ABS). Namun IDE mengenali referensi ke kelas dan sumber daya. Tangkapan layar
christiaanderidder
Saya bermigrasi ke IDEA 13 dari 12 dan mengalami kesalahan ini juga. Hanya mengimpor ulang untuk semua dependensi saya yang akan membantu. Hapus semua modul secara manual, hapus file * .iml terkait dan impor ulang lib Anda
Dmitriy Tarasov
4

Android Studio 3.0

Cukup tambahkan nama pustaka ke blok dependensi file build.gradle aplikasi Anda .

dependencies {
    // ...
    implementation 'com.example:some-library:1.0.0'
}

Perhatikan bahwa Anda harus menggunakan implementationdaripada compilesekarang. Ini baru dengan Android Studio 3.0. Lihat Tanya Jawab ini untuk penjelasan perbedaannya.

Suragch
sumber
Ini sebenarnya adalah perubahan di Gradle 4, bukan Android Studio 3. Anda dapat terus menggunakan, com.android.tools.build:gradle:2.3.3bukan 3.0.0 di Android Studio 3 jika Anda ingin terus menggunakan "kompilasi".
chauduyphanvu
3

Untuk mengatasi masalah ini, Anda hanya perlu menambahkan jalur sumber daya abs ke file build proyek Anda, seperti di bawah ini:

sourceSets {
    main {
        res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
    }
}

Jadi, saya kompilasi lagi tanpa kesalahan.

azh
sumber
3

Jika Anda memiliki Android Studio .0.4.0, Anda dapat membuat folder baru di jalur build Anda YourApp/libraries,. Salin file JAR. Di sana, klik kanan padanya dan "Add As Library". Sekarang Anda memiliki popup. Cukup pilih direktori Anda dan tekan OK, dan hanya itu.

Braunster
sumber
3

Cukup impor proyek perpustakaan Android sebagai modul dan di Build.gradle .

Terapkan plugin: 'com.android.library'

Setelah itu, ikuti langkah-langkah ini:

  1. Klik kanan pada Modul & pilih buka Pengaturan modul
  2. Pilih dependensi, klik +, pilih dependensi perpustakaan, dan tambahkan modul yang sebelumnya diimpor.
Pankaj kumar
sumber
2

Saya menemukan solusinya. Ini sangat mudah. Ikuti instruksi froger_mcs .

Pastikan bahwa Anda membuat folder src folder Sumber di Struktur Proyek -> Modul (Sumber).

Masukkan deskripsi gambar di sini

bengis
sumber
2

Pada dasarnya, Anda dapat memasukkan file JAR Anda dalam tiga cara berbeda. Yang terakhir adalah pustaka jarak jauh yang menggunakan https://bintray.com/ jcenter repositori online. Tetapi, jika Anda melakukannya dengan salah satu dari dua cara lain, file JAR akan dimasukkan secara fisik dalam proyek Anda. Silakan baca tautan ini https://stackoverflow.com/a/35369267/5475941 untuk informasi lebih lanjut. Dalam posting ini saya menjelaskan cara mengimpor file JAR Anda di Android studio dan saya menjelaskan semua cara yang mungkin.

Singkatnya, jika seperti ini (alamat lokal), mereka diunduh dan file-file JAR ini secara fisik dalam proyek:

masukkan deskripsi gambar di sini

Tetapi, jika ini adalah alamat internet seperti ini, mereka adalah perpustakaan jarak jauh (bintray.com jcenter bagian) dan mereka akan digunakan dari jarak jauh:

masukkan deskripsi gambar di sini

Saya harap ini membantu.

Mohammad
sumber
2

Buka file aplikasi modul build gradle dan tambahkan ketergantungan Anda. Jika Anda mengunduh perpustakaan, cukup impor dan bangun sebagai gradle.

Jika tidak, tambahkan repositori dalam aplikasi modul side gradle:

repositories {
        maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}

Repositori pertama akan mengunduh perpustakaan untuk Anda.

Dan kompilasi pustaka yang diunduh:

 compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
        transitive = true
    }

Jika Anda membuat perpustakaan, Anda hanya perlu mengimpor proyek sebagai modul impor baru.

Jinu
sumber
2

Saya memiliki penyebab masalah yang berbeda, jadi untuk orang-orang:

repositories {
    mavenCentral()
}

ubah mavenCentral () ke jcenter () dan tambahkan

allprojects {
    repositories {
        jcenter()
    }
}
tukang pekerjaan
sumber
1

Di Android Studio, buka folder aplikasi di dalam, dan buka file build.gradle. Di sini Anda akan melihat dependensi {}. Di dalamnya Anda dapat menambahkan proyek perpustakaan dan menyinkronkan. Sekarang setelah sinkronisasi perpustakaan itu akan ditambahkan ke proyek Anda, dan Anda dapat menggunakan fungsi dan kelasnya di proyek Anda.

Dharmendra Pratap
sumber
1

Untuk Android Studio:

Masukkan deskripsi gambar di sini

Klik pada Build.gradle (module: app) .

Dan tambahkan untuk

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/commons-io-2.4.jar')
}

dan di "app" direktori Anda, buat direktori, "libs". Tambahkan file yourfile.jar:

Masukkan deskripsi gambar di sini

Akhirnya, kompilasi File Gradle:

Masukkan deskripsi gambar di sini

MAMASSI
sumber
0

Saya juga mengalami masalah yang sama kemudian saya melakukan hal-hal berikut.

  1. Saya mengimpor proyek perpustakaan ke IDE AndroidStudio saya sebagai modul menggunakan menu File -> Impor menu modul

  2. Kemudian saya pergi ke modul utama saya di mana saya ingin proyek perpustakaan sebagai proyek dependen

  3. Klik kanan pada modul utama (dalam kasus saya namanya adalah aplikasi ) -> buka pengaturan modul -> masuk ke tab dependensi -> klik tombol + (Anda akan mendapatkannya di sisi kanan jendela) -> klik pada ketergantungan modul - > pilih proyek perpustakaan Anda dari daftar

Terapkan perubahan dan klik OKtombol.

Ini berhasil untuk saya. Saya harap ini akan membantu orang lain juga.

Android adalah segalanya bagi saya
sumber
0

Tambahkan ini dalam file gradle build Anda:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}
Lalit Baghel
sumber
-1

Memang karena versi berubah, demikian juga mengubah antarmuka pengguna dan opsi yang tersedia di menu. Setelah membaca sebagian besar jawaban untuk pertanyaan ini, saya harus menebak apa yang akan bekerja untuk Android Studio 1.1.0 .

  1. Dengan mouse Anda, pilih proyek di tingkat utama (ini adalah tempat ia menunjukkan nama aplikasi Anda).

  2. Klik kanan, dan pilih opsi menu New, Folder, Asset Folder .

  3. Setelah membuat folder aset, tempel atau salin di dalamnya, file JAR apa pun yang Anda butuhkan untuk pustaka Anda.

  4. Dari menu utama Android Studio (di atas layar) pilih File -> Project Structure .

  5. Kemudian pilih nama proyek Anda dan pergi ke tab Ketergantungan .

  6. Klik tanda plus ( +) di kiri bawah kotak dialog dan pilih ketergantungan file.

  7. Terakhir, buka folder aset yang baru dibuat, pilih file JAR yang Anda salin, lalu klik terapkan dan OK.

Bersihkan dan bangun kembali proyek Anda.

monn3t
sumber
1
membuat salinan stoples dalam aset bukanlah ide yang baik itu akan secara tidak perlu meningkatkan ukuran apk
Rajnish Mishra
Terima kasih atas sarannya di @RajnishMishra. Saya curiga, tapi apa yang Anda usulkan?
monn3t