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 .)
Gradle
, bu StackOverflow yanıtına bakın .
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 .)
Gradle
, bu StackOverflow yanıtına bakın .
Yanıtlar:
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.gradle
dosyada 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ı:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
) yeni klasör oluşturun: /libs
iç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)./libs
klasö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 ...
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'
Gelen app/build.gradle
bir 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")
}
Kütüphane projenizde build.gradle
dosya 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']
}
}
}
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.properties
dosyayı 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.gradle
aş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)
}
}
//...
Bu kadar. The Projeyi Gradle ile senkronize et 'simgesini tıklamanız yeterlidir . 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.
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)
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.gradle
dosyayı actionbarsherlock
dizin ve güncellemek buildToolsVersion
önerilen birine.
android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
Menü Dosyası -> Proje Yapısı ... :
Modül -> Alma Modülü
Kütüphane modülü içe aktardıktan sonra, seçmek için proje modülü ve bağımlılık ekleyin:
Ve sonra içe aktarılan modülü seçin :
Select your project module and add dependency
dependencies { // ... compile project(':library') }
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.jar
dosyayı sınıf yoluna eklemek isteyebilirsiniz .
Gradle'ı kullanarak kütüphaneyi içe aktarmak için kütüphaneyi modülünüzün dependencies
bö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).
Modules
bölüm yok Project Structure
.
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 .
Daha kolay bir yol buldum (doğrudan .gradle dosyalarına yazmak yerine).
Bu Android Studio 1.1.0 içindir.
Menü Dosyası -> Yeni Modül ... :
"Mevcut Projeyi İçe Aktar" ı tıklayın.
İstediğiniz kütüphaneyi ve istediğiniz modülü seçin.
Bitir'i tıklayın. Android Studio kütüphaneyi projenize aktaracak. Gradle dosyalarını senkronize edecektir.
İç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âr
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):
Settings.gradle içinde
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
Build.gradle bağımlılıkları bölümünde,
compile project ('facebook')
Tek yapmanız gereken projeyi not dosyaları ile senkronize etmektir.
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 :
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.
İlgili build.gradle dosyası otomatik olarak güncellenir.
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.+'
}
Proje panelinde, Controlbağımlılığı eklemek istediğiniz modülü tıklatın ve Modül Ayarlarını Aç'ı seçin.
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:
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.
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')
...
}
Bunu kolayca yapabilirsiniz. Dosya -> Yeni -> Modülü İçe Aktar ... menüsüne gidin :
Modülü içeren dizine göz atın. Son'u tıklayın:
Git Proje Yapısı ve eklemek Modül Bağımlılık :
Not: Bir SDK hatası alırsanız, bunu güncelleyin.
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/
Üç proje belirleyebiliriz. Gradle bunlara aşağıdaki isimlerle referans verecektir:
: 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')
}
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ü" nü kontrol edin.
First Way Bu, MacBook için çalışıyor.
Öncelikle builder.gradle dosyanızı verilen ekrana göre seçin:
Seçilen ekranda olduğu gibi bağımlılıklar ekleyin:
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ü ... :
İçe Aktarma Modülü'nü tıkladıktan sonra ,
MacBook yolu gibi kütüphanenin yolunu ver:
Bitir'e tıklayın . Şimdi kütüphaneniz eklendi.
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ü.
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ü
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 implementation
yerine 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 .
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 .
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:
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 , Android Studio 1.0.1'in en son sürümüne nasıl JAR dosyası ve kitaplık projesi ekleneceğinin Dropbox bağlantısıdır.
Lütfen ekran görüntülerine sahip belgelere bakın. Yeni bir kullanıcı için çok kolay.
Çö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 .
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:
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:
Umut ediyorum bu yardım eder.
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.
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.
Android Studio için:
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:
Son olarak Gradle Dosyalarını derleyin:
Ben de aynı problemle karşılaştım ve daha sonra takip ettik.
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
Sonra kütüphane projesini bağımlı bir proje olarak istediğim ana modülüme gittim
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.
Bunu yapı sınıflandırma dosyanıza ekleyin:
dependencies {
implementation 'com.jakewharton:butterknife:9.0.0'
}
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 .
Farenizle projeyi ana düzeyde seçin (burası uygulamanızın adını gösterir).
Sağ tıklayın ve Yeni, Klasör, Varlıklar Klasörü menü seçeneklerini seçin .
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.
Android Studio'nun ana menüsünden (ekranın üstünde) Dosya -> Proje Yapısı'nı seçin .
Ardından proje adınızı seçin ve Bağımlılıklar sekmesine gidin.
+İletişim kutusunun sol alt köşesindeki artı işaretine ( ) tıklayın ve dosya bağımlılığını seçin.
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.