Android Studio'ya nasıl kütüphane projesi ekleyebilirim?


796

Android Studio'ya nasıl bir kütüphane projesi (Sherlock ABS gibi) ekleyebilirim ?

(Eski ADT Eclipse tabanlı pakete değil, yeni Android Studio'ya .)


28
Evet bunu anlamak, olması gerekenden çok daha kafa karıştırıcıydı ... Tutulmada daha iyi olduğu gibi değil.
Daniel Smith

4
Android Studio'ya Kitaplık Ekleme videosu süreci açıklar.

2
Kullanıyorsanız Gradle, bu StackOverflow yanıtına bakın .
craned

2
İşte gerçekten yararlı bulduğum bir video: youtube.com/watch?v=1MyBO9z7ojk
Simon

Yanıtlar:


718

Android Studio 1.0 Güncelleştirmesi

Android Studio 1.0 piyasaya sürüldüğünden (ve v1.0 ile önceki yanıtımdaki ilklerden biri arasında birçok sürüm) bazı şeyler değişti.

Açıklamam harici kütüphane projesini Gradle dosyaları aracılığıyla elle eklemeye odaklanıyor (süreci daha iyi anlamak için). Android Studio yaratıcısı aracılığıyla kütüphane eklemek istiyorsanız, sadece kontrol cevabı görsel kılavuz ile aşağıda (oradaki Android Studio 1.0 ve ekran görüntüleri gelenler arasında bazı farklar vardır, ancak süreç çok benzer).

Projenize elle bir kütüphane eklemeye başlamadan önce, harici bağımlılığı eklemeyi düşünün. Proje yapınızı bozmaz. Hemen hemen her iyi bilinen Android kütüphanesi bir Maven deposunda bulunur ve kurulumu app/build.gradledosyada yalnızca bir kod satırı alır :

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

Kütüphane ekleme

Projemize harici Android kütüphanesi ekleme işleminin tamamı:

  1. Android Studio oluşturucu aracılığıyla yeni bir proje oluşturun. HelloWorld adını verdim .
  2. İşte Android Studio tarafından oluşturulan orijinal proje yapısı:
HelloWorld/
      app/
           - build.gradle  // local Gradle configuration (for app only)
           ...
      - build.gradle // Global Gradle configuration (for whole project)
      - settings.gradle
      - gradle.properties
      ...
  1. Kök dizinde ( HelloWorld/) yeni klasör oluşturun: /libsiçine harici kütüphanelerimizi yerleştireceğiz (bu adım gerekli değildir - sadece daha temiz bir proje yapısını korumak için).
  2. Kitaplığınızı yeni oluşturulan /libsklasöre yapıştırın . Bu örnekte PagerSlidingTabStrip kütüphanesini kullandım (sadece GitHub'dan ZIP'yi indirin, kütüphane dizinini „PagerSlidingTabStrip“ olarak yeniden adlandırın ve kopyalayın). İşte projemizin yeni yapısı:
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. Kitaplığınıza ekleyerek settings.gradle dosyasını düzenleyin include. Benim yaptığım gibi özel bir yol kullanırsanız, kütüphanemiz için proje dizinini de tanımlamanız gerekir. Bütün ayarlar. Grad aşağıdaki gibi görünmelidir:

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

5.1 "Varsayılan Yapılandırma" hatasıyla karşılaşırsanız, 5. adım yerine bunu deneyin,

    include ':app'
    include ':libs:PagerSlidingTabStrip'
  1. Gelen app/build.gradlebir bağımlılık olarak kütüphane projesini ekleyin:

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

6.1. 5.1 adımını izlediyseniz 6 yerine bunu uygulayın,

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

        compile project(":libs:PagerSlidingTabStrip")
    }
  1. Kütüphane projenizde build.gradledosya yoksa manuel olarak oluşturmanız gerekir. İşte bu dosyaya bir örnek:

        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. Ayrıca, projeniz için SDK sürümlerini içerecek küresel bir yapılandırma oluşturabilir ve tutarlılığı sağlamak için her modül için araçlar sürümünü oluşturabilirsiniz. Sadece gradle.propertiesdosyayı düzenleyin ve satır ekleyin:

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

    Şimdi build.gradleaşağıdaki gibi dosyalarınızda (uygulama ve kitaplık modüllerinde) kullanabilirsiniz:

    //...
    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. Bu kadar. The Projeyi Gradle ile senkronize et 'simgesini tıklamanız yeterlidir Gradle ile senkronize et. Kütüphaneniz projenizde mevcut olmalıdır.

Google I / O 2013 - Yeni Android SDK Yapı Sistemi , Gradle Build Sistemi ile Android uygulamaları oluşturma hakkında harika bir sunum: Xavier Ducrohet'in dediği gibi:

Android Studio tamamen düzenleme, hata ayıklama ve profil oluşturma ile ilgilidir. Artık bina yapmakla ilgili değil.

Başlangıçta biraz kafa karıştırıcı olabilir (özellikle Eclipse ile çalışan ve karıncaları hiç görmemiş olanlar için;)), ama sonunda Gradle bize harika fırsatlar sunuyor ve bu inşa sistemini öğrenmeye değer.


6
hey orada, gerçek sorunu mükemmel açıkladın. cevabınızı oy verin, böylece diğer insanlar görebilir. benim tarafımda çalışmayan küçük bir şey, bağımlılık build.gradle destek kitaplığı başvuruyor. olduğu gibi ': Proje / kütüphaneler ...' herhangi bir nedenle işe yaramadı. proje kimliğini ortadan kaldırmak zorunda kaldım. yani 'libs / ...'. ve iyi derlendi. bir not, bu iki yol ya da projeye gönderme yönteminin kafa karıştırıcı olmasıdır. Umarım gelecekte basit ve birleşik bir plan ortaya çıkar. orijinal çözümün işe yaramamasının bir nedeni yoktur.
victor n.

9
+1. Uzun zamandır bununla mücadele ediyordu. As galip n söyledi ActionBarSherlock modülünden ana projenin destek kavanozu başvuran iş yapmaz. Çalıştırmak için aşağıdakileri yapmak zorundaydım ... (1) Derleme dosyalarını ('libs / android-support-v4.jar') projenin build.gradle kaldırmak. Ana modül sadece derleme projesine sahip olmalıdır (": library: actionbarsherlock") . (2) actionbarsherlock'un build.gradle dosyasına derleme dosyaları (': HelloWorld / libs / android-support-v4.jar') yerine derleme dosyaları ('libs / android-support-v4.jar') ekleyin.
Akbar ibrahim

3
Nerede Global libraries(# 10: "Şimdi Küresel kütüphanelere gidip")? Bunun dışında, açıklandığı gibi çalışır :) Çok teşekkürler. (Umarım Google buna iner - şu anda böyle basit bir görev kafa karıştırıcı derecede karmaşıktır)
Konrad Morawski

8
Bizi yönlendirdiğiniz seçenekte neden "İçe Aktarım Modülü" bölümüm yok? Android Studio 0.3.1 kullanıyorum
alicanbatur

5
Modülü İçe Aktar seçeneği eksik !!
amalBit

274

Görsel rehber:

Android Studio 0.8.2 için güncelleme :

Android Studio 0.8.2'de, Modüller altında Proje Yapısı -> seçeneğine gidin, sadece artı düğmesine basın ve Mevcut Projeyi İçe Aktar ve içe aktar'ı seçin . Ardından Gradle dosyalarınızı senkronize edin.actionbarsherlock

Hatayla karşılaşırsanız

Hata: SDK Derleme Araçları revizyonu (xx.xx) çok düşük. Gereken minimum yy.yy

Sadece açmak build.gradledosyayı actionbarsherlockdizin ve güncellemek buildToolsVersionönerilen birine.

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

Android Studio 0.8.2


Menü Dosyası -> Proje Yapısı ... :

İlk

Modül -> Alma Modülü

İkinci

Kütüphane modülü içe aktardıktan sonra, seçmek için proje modülü ve bağımlılık ekleyin:

Üçüncü

Ve sonra içe aktarılan modülü seçin :

ileri


31
İçe aktarma modülü seçeneği Android Studio4.3'te mevcut değil
amalBit

3
Benim bu işi yapmak ve paketi bulunamadı hataları çözmek için anahtar adım olduSelect your project module and add dependency dependencies { // ... compile project(':library') }
toobsco42

7
Bu çeşitli projeler arasında paylaşılan ortak kod tabanını istiyorsanız istemiyor budur, projenizde kütüphane modülü kopyalar
Rémy DAVID

@amalBit ... gelecekten misin? Ama cidden, Eclipse ADT'de olduğu gibi bunu basitleştirmeleri gerekiyor; kim bir üçüncü taraf repo vurmak ve (muhtemelen) rasgele kod her derleme derlemek istiyor? Bu, KG ve kod dondurma protokollerini ciddi şekilde baltalıyor
CCJ

Android stüdyosu 0.4.3'ün beta günlerinde geri döndü. Katılım 3. parti repo gelince, id, + kullanmaktan kaçının. Sadece istediğiniz sürümü belirtin. Eğer hala yeterince güvenemiyorsanız, herhangi bir depodan bir kavanoz (veya klon) oluşturabilir ve kullanabilirsiniz.
amalBit

111

Dosya -> Proje Yapısı -> Modüller menüsünü kullanın .

Bugün kullanmaya başladım. Biraz farklı.

Sherlock için, belki de test dizinlerini silmek veya junit.jardosyayı sınıf yoluna eklemek isteyebilirsiniz .

Gradle'ı kullanarak kütüphaneyi içe aktarmak için kütüphaneyi modülünüzün dependenciesbölümüne eklemeniz gerekebilir build.gradle.

Örneğin

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 değişiyor.

Android Studio'nun proje bölümünde bir modül klasörünü sağ tıklarsanız "Modül ayarlarını aç" adlı bir bölüm vardır (0.2.10 sürümünü kullanıyorum).


1
Hmm hala android-apt-compiler: styles.xml: 5: hata: Öğe için üst öğe alınırken hata oluştu: Belirtilen 'Theme.Sherlock.Light.DarkActionBar' adıyla eşleşen kaynak bulunamadı.
Alexander Kulyakhtin

Sherlock Modülü -> Bağımlılıklar altında android 4.2.2 ve destek Kütüphanesi v4
Blackbelt

@ ρяσѕρєяK Çalıştır düğmesinin yanında Android bulunan bir etiket var. Oraya tıklarsanız Yapılandırmayı Düzenle'yi bulacaksınız. Hedef Cihazı itin ve altında "Seçici Arama'yı Göster" e tıklayın
Blackbelt

7
Merhaba, Alex gibi aynı sorunu yaşadım ("Gradle: Öğe için üst öğe alınırken hata: Verilen 'Theme.Sherlock.Light' adıyla eşleşen kaynak bulunamadı.) - Java bağımlılığı doğru bir şekilde çözülmüş gibi görünüyor, IDE SherlockActivity'yi suçlamıyor, ancak bir nedenden dolayı Gradle ABS'nin kaynaklarına bakmıyor gibi görünüyor. Herhangi bir fikir?
balık

4
Android Studio 0.2.8'de pencerede Modulesbölüm yok Project Structure.
Konrad Morawski

52

Ben ele alacak Bağımlılıkları, Android Kütüphaneler ve Multi-proje kurulum gerekli okuma. Lütfen bunu yapmak için birkaç dakikanızı ayırın.

Özellikle, kavanoz olmayan bir kütüphane projesi söz konusu olduğunda, yukarıdaki kod parçasını yukarıdaki kaynaktan okuyun:

Gradle projeleri ayrıca çoklu proje kurulumunu kullanarak diğer gradle projelerine de bağlı olabilir. Çok projeli kurulum genellikle belirli bir kök projenin tüm alt klasörleri olan projelere sahip olarak çalışır.

Örneğin, aşağıdaki yapıya verilir:

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

3 proje belirleyebiliriz. Gradle bunlara şu adla referans verecektir:

:app
:libraries:lib1
:libraries:lib2

Her projenin nasıl inşa edildiğini bildiren kendi build.gradle olacaktır. Ayrıca, projeleri bildiren kökte settings.gradle adlı bir dosya olacaktır. Bu, aşağıdaki yapıyı verir:

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

Settings.gradle içeriği çok basittir:

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

Bu, hangi klasörün aslında bir Gradle projesi olduğunu tanımlar.

: App projesi büyük olasılıkla kütüphanelere bağlı olacaktır ve bu aşağıdaki bağımlılıklar bildirilerek yapılır:

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

Bunun gerçekleşmesi için Android Studio GUI'nin çok az veya hiç kullanılmadığını lütfen unutmayın.

Şu anda bir bağımlılık karışıklık önlemek için gerçek kitaplık git repo iç içe kitaplığı bağlamak için git alt modülleri kullanıyorum .


Çok yararlı ve daha da önemlisi, günün gui kaprislerine oynamak değil.
RichieHH

1
mantıklı olan tek cevabı eklediğiniz için çok teşekkür ederim. diğer her cevap modası geçmiş ve işe yaramıyor. Virginia Tech'teki CS'de bile denemedim çünkü ilk iki yıl tutulma içinde tıklamayı öğreniyordu. herhangi FCKN mantıklı, ama görme vermedi gradle bir IDE rastgele tıklama sonucunu yapar.
dcunited001

Git alt modül ucu için teşekkürler. Daha önce kavşak kullanıyordum, ama şimdi SVN dışsallarına geçtim. Tıkır tıkır çalışıyor.
velis

25

Daha kolay bir yol buldum (doğrudan .gradle dosyalarına yazmak yerine).

Bu Android Studio 1.1.0 içindir.

  1. Menü Dosyası -> Yeni Modül ... :

    Mevcut Projeyi İçe Aktar

    "Mevcut Projeyi İçe Aktar" ı tıklayın.

  2. İstediğiniz kütüphaneyi ve istediğiniz modülü seçin.

  3. Bitir'i tıklayın. Android Studio kütüphaneyi projenize aktaracak. Gradle dosyalarını senkronize edecektir.

  4. İçe aktarılan modülü projenizin bağımlılıklarına ekleyin.

    Uygulama klasörünü sağ tıklayın -> Modül ayarlarını aç -> bağımlılıklar sekmesine gidin -> '+' düğmesine tıklayın -> Modül Bağımlılığı'na tıklayın.

    Daha sonra kütüphane modülü projenin bağımlılıklarına eklenecektir.

    Kütüphane modülü ekle

  5. ???

  6. kâr


17

Harici kütüphane projesini dahil etmenin en kolay yolu (örneğin, bağımlılıklar klasöründe bir dizin saklanan bir Facebook kütüphanesini dahil etmek):

  1. Settings.gradle içinde

    include ':facebook'
    
    project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
  2. Build.gradle bağımlılıkları bölümünde,

    compile project ('facebook')

Tek yapmanız gereken projeyi not dosyaları ile senkronize etmektir.


Merhaba Vilen ayarları nedirDir here
Rajnish Mishra

Merhaba Rajnish. Belgelerden: settingsDir Yapının ayarlar dizinini döndürür. Ayarlar dizini, ayarlar dosyasını içeren dizindir. Döndürür: Ayarlar dizini. Asla boş döndürmez.
Vilen

Öncesinde iki nokta / bağımlılıklar bakım daha önemlidir Cevabınız bana çok yardımcı .. Teşekkürler
Rajnish Mishra

NOT: not dizesinde değerlendirme için çift tırnak (") kullanmanız gerekir. Bu benim için" günü kurtarın " Bu
Solata

15

Android Studio projenize bir JAR dosyasını kütüphane olarak eklemenin basit bir yolu:

a) * .jar dosyalarınızı kopyalayın

b) Projelerinizin altındaki libs dizinine yapıştırın :

Resim açıklamasını buraya girin

c) Derlemeye ekle.

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

b) örneğin com.example.MYProject ve kütüphaneler com.example.ScanAPI'deki projeniz com.example ile aynı ad alanına sahipse , Android Studio yapınızı kontrol eder ve projenizde gerekli tüm değişiklikleri oluşturur. Bundan sonra bu ayarları Dosya -> Proje Yapısı menüsünden inceleyebilirsiniz .

c) Projeniz ve kitaplıklarınız farklı bir ad alanına sahipse , kitaplığa sağ tıklayıp "Kitaplık Olarak Ekle" seçeneğini seçip ihtiyacınız olan türü seçin.

"Proje yapısı" seçeneğinin, Android Studio'nun (0.2.3) geçerli sürümünde "build.gradle" da herhangi bir otomatik değişiklik yapmadığını unutmayın. Belki bu özellik sonraki sürümlerde mevcut olacaktır.


12

Seçenek 1: Dosyaları Project'in libs / dizinine bırakın

İlgili build.gradle dosyası otomatik olarak güncellenir.

2. Seçenek: build.gradle Dosyasını Manuel Olarak Değiştirme

Build.gradle dosyanızı açın ve bağımlılıkların kapatılmasına yeni bir oluşturma kuralı ekleyin. Örneğin, Google Play Hizmetleri'ni eklemek istiyorsanız, projenizin bağımlılıklar bölümü şöyle görünür:

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

3. Seçenek: Android Studio'nun Kullanıcı Arayüzünü Kullanma

Proje panelinde, Controlbağımlılığı eklemek istediğiniz modülü tıklatın ve Modül Ayarlarını Aç'ı seçin.

Resim açıklamasını buraya girin

Bağımlılıklar sekmesini ve ardından sol alt köşedeki + düğmesini seçin. Aşağıdaki seçenekler listesinden seçim yapabilirsiniz:

  • Kütüphane Bağımlılığı
  • Dosya Bağımlılığı
  • Modül Bağımlılığı

Ardından, projenize eklemek istediğiniz bağımlılık hakkında daha fazla bilgi girebilirsiniz. Örneğin, Kitaplık Bağımlılığı'nı seçerseniz Android Studio, aralarından seçim yapabileceğiniz kitaplıkların bir listesini görüntüler.

Bağımlılığınızı ekledikten sonra, modül düzeyinde build.gradle dosyanızı kontrol edin. Yeni bağımlılığı içerecek şekilde otomatik olarak güncellenmiş olmalıdır.

Kaynak


10

Android Studio 1.5 ve sonraki sürümlerinde benim için böyle çalışır

Harici kütüphane projesi eklemek istediğiniz projede Dosya -> Yeni -> * Yeni Modülü İçe Aktar ** menüsüne gidin, projenize eklemek istediğiniz kütüphane projesine gidin, 'kütüphane' modülünü eklemeyi seçin. senin projen. Projelerinizde settings.gradle , uygulamanın yanında, kitaplık dahil, şöyle bir şey alırsınız :

include ':app', ':library'

Bağımlılıklar bölümüne build.gradle (Modül: app) öğesini ekleyin :

Projeyi derleyin (': kütüphane')

Projeyi yeniden oluştur ve hepsi bu.

* İstediğiniz kadar kütüphane (modül) ekleyebilirsiniz. Bu durumda settings.gradle'da sahip olacaksınız:

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

Ve build.gradle'da şunlara sahip olmanız gerekir:

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

    // Some other dependencies...

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

9

Bir kütüphane projesinin kaynaklarına (ABS ile yaptığınız gibi) erişmeniz gerekiyorsa, kütüphane projesini / modülünü "Kütüphane" yerine "Modül Bağımlılığı" olarak eklediğinizden emin olun.


9

Bunu kolayca yapabilirsiniz. Dosya -> Yeni -> Modülü İçe Aktar ... menüsüne gidin :

Resim açıklamasını buraya girin

Modülü içeren dizine göz atın. Son'u tıklayın:

Resim açıklamasını buraya girin

Git Proje Yapısı ve eklemek Modül Bağımlılık :

Resim açıklamasını buraya girin

Not: Bir SDK hatası alırsanız, bunu güncelleyin.


1
Bana göre en basit ve en hızlı yol, bugün itibariyle hala çalıştı!
mrj

8
  1. Basın F4göstermeye Proje Yapısı , kütüphaneler veya Global kütüphanelerini tuşa tıklayın ve +JAR dosyasını ekleyin.
  2. Jar eklemek istediğiniz modülleri tıklatın , Bağımlılıklar sekmesini seçin , Tamam'ı tıklatın +ve Kitaplık ekleyin.

6

Kütüphane bağımlılıklarını GUI aracılığıyla düzenlemek, bu değişiklikleri build.gradle dosyanıza yazmadığı için önerilmez. Yani projeniz komut satırından oluşturulmayacak. Build.gradle dosyasını doğrudan aşağıdaki gibi düzenlemeliyiz.

Örneğin, aşağıdaki yapıya verilir:

Projem/

  • Uygulamanın /
  • kütüphaneler /
    • LIB1 /
    • lib2 /

Üç proje belirleyebiliriz. Gradle bunlara aşağıdaki isimlerle referans verecektir:

  1. : Uygulamanın
  2. : Kütüphaneler: LIB1
  3. : Kütüphaneler: lib2

: App projesi büyük olasılıkla kütüphanelere bağlı olacaktır ve bu aşağıdaki bağımlılıklar bildirilerek yapılır:

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

Gerçekten mi? Garip, tüm GUI'ye sahipler ve yine de tavsiye edilmiyor. Nasıl yani?
Alexander Kulyakhtin

GUI üzerinden düzenleme, bu değişiklikleri build.gradle dosyanıza yazmaz. GUI düzenleme yalnızca IntelliJ'in kendi proje verilerindeki değişiklikleri kaydeder. Bu, gelecekteki sürümlerde düzeltilecek olan bir hatadır. Bu yanıta Google Android-Studio Team Lead'den başvurabilirsiniz stackoverflow.com/questions/16678447/…
Shakti Malik

5

Cevaba eklemek için: IDE herhangi bir hata göstermezse, ancak derlemeye çalıştığınızda şöyle bir şey alırsınız:

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

Kütüphane projeniz muhtemelen bir uygulama projesi olarak derlenmiştir. Bunu değiştirmek için şu adrese gidin:

Menü Dosyası -> Proje yapısı -> Özellikler -> [Kütüphane adı] -> "Kütüphane modülü" kontrol edin.


5

First Way Bu, MacBook için çalışıyor.

Öncelikle builder.gradle dosyanızı verilen ekrana göre seçin:

Resim açıklamasını buraya girin

Seçilen ekranda olduğu gibi bağımlılıklar ekleyin:

Resim açıklamasını buraya girin

Senkronizasyon projesini seçin.

"Yol ile proje:: signature-pad 'gibi bir hata alıyorsanız': app '" projesinde bulunamadı, lütfen ikinci yolu kullanın:

Seç menü Dosya -> Yeni -> İthalat Modülü ... :

Resim açıklamasını buraya girin

İçe Aktarma Modülü'nü tıkladıktan sonra ,

Resim açıklamasını buraya girin

MacBook yolu gibi kütüphanenin yolunu ver:

Resim açıklamasını buraya girin

Bitir'e tıklayın . Şimdi kütüphaneniz eklendi.


4

ABS Modülünü içe aktardıktan sonra (Dosya> Proje Yapısı'ndan) ve bağımlılıkları olarak Android 2.2 ve Destek Kitaplığı v4'e sahip olduğundan emin olduktan sonra, @Alex olarak aşağıdaki hatayı alıyordum

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

Yeni içe aktarılan modülü ana uygulama modülüme bağımlılık olarak ekledim ve bu sorunu çözdü.


Bir bağımlılık olarak modül ekleme dahil tüm adımları denedim ama hala var Gradle: Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light'.. Ana projem kütüphane projesinin (ABS) kaynaklarını görmüyor gibi görünüyor. Ancak IDE, sınıflara ve kaynaklara yapılan referansları tanır. Ekran Görüntüsü
christiaanderidder

12'den IDEA 13'e geçiyorum ve bu hatayı da aldım. Yalnızca tüm bağımlılıklarım için yeniden içe aktarma yardımcı olacaktır. Tüm modülleri elle kaldırın, ilgili * .iml dosyalarını kaldırın ve kütüphanelerinizi tekrar içe aktarın
Dmitriy Tarasov

4

Android Studio 3.0

Kitaplık adını uygulamanızın build.gradle dosyasının bağımlılık bloğuna eklemeniz yeterlidir .

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

Şimdi kullanmak implementationyerine kullanmanız gerektiğini unutmayın compile. Bu Android Studio 3.0 ile yeni. Farkın açıklaması için bu Soru ve Cevaplara bakın .


Bu aslında Android Studio 3'te değil Gradle 4'te bir değişiklik. com.android.tools.build:gradle:2.3.3"Derleme" yi kullanmaya devam etmek istiyorsanız Android Studio 3'te 3.0.0 yerine kullanmaya devam edebilirsiniz .
chauduyphanvu

3

Bu sorunu çözmek için, sadece aşağıdaki gibi proje oluşturma dosyanıza abs kaynak yolunu eklemeniz gerekir:

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

Böylece, yine hatasız derlerim.


3

Android Studio .0.4.0'ınız varsa, oluşturma yolunuzda yeni bir klasör oluşturabilirsiniz YourApp/libraries. JAR dosyasını kopyalayın. Orada sağ tıklayın ve "Kitaplık Olarak Ekle" ye tıklayın. Şimdi bir pop-up var. Sadece dizininizi seçin ve OK tuşuna basın, hepsi bu.


3

Android kütüphane projesini bir modül olarak ve Build.gradle'a aktarmanız yeterlidir .

Eklentiyi uygula: 'com.android.library'

Bundan sonra şu adımları izleyin:

  1. Modül'e sağ tıklayın ve Açık Modül ayarlarını seçin
  2. Bağımlılıkları seçin, üzerine tıklayın, +kitaplık bağımlılıklarını seçin ve önceden içe aktarılan modülü ekleyin.


2

Çözümü buldum. Çok basit. Froger_mcs talimatlarını takip edin .

Src klasörünü Proje Yapısı -> Modüller (Kaynaklar) altında bir Kaynak klasör yaptığınızdan emin olun .

Resim açıklamasını buraya girin


2

Temel olarak, JAR dosyalarınızı üç farklı şekilde ekleyebilirsiniz. Sonuncusu, https://bintray.com/ jcenter çevrimiçi deposunu kullanan uzak kitaplıktır . Ancak, bunu diğer iki yoldan biriyle yaparsanız, JAR dosyası projenize fiziksel olarak dahil edilir. Lütfen bu bağlantıyı okuyun https://stackoverflow.com/a/35369267/5475941 fazla bilgi için . Bu yazıda JAR dosyanızı Android stüdyosuna nasıl aktaracağımı ve olası tüm yolları açıkladım.

Özet olarak, eğer bu (yerel adres) ise, indirilir ve bu JAR dosyaları fiziksel olarak projede bulunur:

resim açıklamasını buraya girin

Ancak, eğer böyle bir internet adresi ise, bunlar uzak kütüphanelerdir (bintray.com jcenter bölümü) ve uzaktan kullanılacaktır:

resim açıklamasını buraya girin

Umut ediyorum bu yardım eder.


2

Derleme sınıf modülü uygulama dosyasını açın ve bağımlılığınızı ekleyin. Kütüphaneyi indirirseniz, sadece not olarak içe aktarın ve derleyin.

Aksi takdirde yan sınıf modülü uygulamasına depo ekleyin:

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

İlk depolar kütüphaneyi sizin için indirecektir.

Ve indirilen kütüphaneyi derleyin:

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

Bir kitaplık oluşturuyorsanız, projeyi yeni modül içe aktar olarak almanız yeterlidir.


2

Sorunun farklı bir nedeni vardı, bu yüzden insanlar için:

repositories {
    mavenCentral()
}

mavenCentral () öğesini jcenter () olarak değiştirin ve ekleyin

allprojects {
    repositories {
        jcenter()
    }
}

1

Android Studio'da uygulama klasörünün içine gidin ve build.gradle dosyasını açın. Burada bağımlılıklar göreceksiniz {}. İçinde kütüphane projesi ekleyebilir ve senkronize edebilirsiniz. Şimdi kütüphaneyi senkronize ettikten sonra projenize eklenecek ve projenizdeki işlevlerini ve sınıflarını kullanabilirsiniz.


1

Android Studio için:

Resim açıklamasını buraya girin

Tıklayın (: Uygulama modülü) Build.gradle .

Ve ekleyin

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

ve "app" dizininizde "libs" adlı bir dizin oluşturun. Yourfile.jar dosyasını ekleyin:

Resim açıklamasını buraya girin

Son olarak Gradle Dosyalarını derleyin:

Resim açıklamasını buraya girin


0

Ben de aynı problemle karşılaştım ve daha sonra takip ettik.

  1. Dosya -> Modül menülerini içe aktar menüsünü kullanarak kütüphane projesini AndroidStudio IDE'ye modül olarak içe aktarıyorum

  2. Sonra kütüphane projesini bağımlı bir proje olarak istediğim ana modülüme gittim

  3. Ana modüle sağ tıklayın (benim durumumda adı app ) -> açık modül ayarı -> bağımlılıklar sekmesine gidin -> + düğmesine tıklayın (pencerenin sağ tarafında alacaksınız) -> modül bağımlılığına tıklayın - > listeden kütüphane projenizi seçin

Değişiklikleri uygulayın ve OKdüğmesine tıklayın.

Benim için çalıştı. Umarım başkalarına da yardımcı olur.


0

Bunu yapı sınıflandırma dosyanıza ekleyin:

 dependencies {
     implementation 'com.jakewharton:butterknife:9.0.0'
}

-1

Aslında sürümler değiştikçe, kullanıcı arayüzünü ve menüdeki seçenekleri de değiştiriyor. Bu soruların cevaplarının çoğunu okuduktan sonra Android Studio 1.1.0 için neyin işe yarayacağını tahmin etmek zorunda kaldım .

  1. Farenizle projeyi ana düzeyde seçin (burası uygulamanızın adını gösterir).

  2. Sağ tıklayın ve Yeni, Klasör, Varlıklar Klasörü menü seçeneklerini seçin .

  3. Varlıklar klasörünü oluşturduktan sonra, kitaplığınız için ihtiyacınız olan JAR dosyası ne olursa olsun yapıştırın veya kopyalayın.

  4. Android Studio'nun ana menüsünden (ekranın üstünde) Dosya -> Proje Yapısı'nı seçin .

  5. Ardından proje adınızı seçin ve Bağımlılıklar sekmesine gidin.

  6. +İletişim kutusunun sol alt köşesindeki artı işaretine ( ) tıklayın ve dosya bağımlılığını seçin.

  7. Son olarak, son oluşturulan varlıklar klasörünü açın, kopyaladığınız JAR dosyalarını seçin ve ardından uygula ve üzerine tıklayın OK.

Projenizi temizleyin ve yeniden oluşturun.


1
Varlıklarda kavanoz kopya yapmak gereksiz yere apk boyutunu artıracak iyi bir fikir değil
Rajnish Mishra

@RajnishMishra tavsiyesi için teşekkürler. Bundan şüpheliydim, ama bunun yerine ne öneriyorsun?
monn3t
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.