2013-05-27 12 views
5

Google'ın instructions for using the Play Service API (örneğin) de ki: Eğer Android uygulama projelerini sürdürmek kaynak ağacınaGoogle neden kütüphaneleri ağacınıza kopyalamanızı önerir?

kopyala/ekstralar/google/google_play_services/libproject/google-play-services_lib kütüphane projesi.

Not: Kaynak ağacınıza kopyaladığınız kitaplığın bir kopyasına başvurmanız gerekir; kitaplığı Android SDK dizininden göndermemelisiniz.

Bu bana çirkin geliyor - neden SDK dizinden başvurmuyorsunuz? Bunun için bazı teknik neden var mı? Yoksa yükseltildiği zaman açık kontrolünüz var mı?

cevap

4

Bunun tamamen bir Eclipse sınırlaması olduğunu ve gerçekten çirkin olduğunu belirtmek isterim.

Sorun, bu kütüphanenin kaynak koduna ek olarak kaynak içermesidir. Eclipse yalnızca Android geliştirme amacıyla kaynak içermeyen jar dosyaları olarak paketlenmiş kütüphanelerle ilgilenebilir.

Bu nedenle, kütüphane kaynağının uygulamaya derlenebilmesi için, kaynağın kaynak kodunun projenize eklenmesi gerekir.

Yapınızı Maven'e taşıdığınızda ve 'anlatan' Maven'i kullanan bir IDE kullanırsanız, kaynakların bir kısmını 'apklib' olarak içeren bir kitaplık oluşturabilir ve bir dış kitaplık gibi davranabilirsiniz. kavanoz dosyası.

Yeni Gradle tabanlı derleme sistemi Maven ilkelleri üzerine kurulmuştur, ancak bunun için 'aar' biçiminde farklı bir biçim kullanır. Umarım, yine aynı zamanda apklib'i de destekleyecektir, böylece Maven'in inşaası ve Gradle yapıları çalışabilir.

Bazı apklibs'lerin kullanımı da dahil olmak üzere bir Android uygulamasını Maven derlemesine dönüştürme alıştırması yaptım. Size m2liplipse eklentisi olan Eclipse'in apklibs'i düzgün bir şekilde işlemediğini söyleyebilirim. Hem IntelliJ hem de yeni Google Android Studio (IntelliJ'e dayanan), apklibs'i hiçbir sorun olmadan halleder.

0

Bu "Play Hizmetleri Kitaplığı" ile ilgili değildir. Projenin kullandığı diğer tüm kütüphaneler gibi, bu kütüphanenin projenin kaynak ağacından referans alınmalıdır.

Bu durumda, dış kütüphane Android SDK dizinindedir ve buradan da başvuru yapmak iyi bir uygulama değildir. Yani evet, "teknik bir sebep" olarak adlandırılabilir.

Kullanılan kütüphaneler (bu durumda Play Hizmetleri kitaplığı), projenin kaynak ağacından başka bir yerden referans alınmamalıdır.

+0

Teknik nedenlerden dolayı? Neden iyi bir uygulama olmadığını düşünüyorsunuz ya da bu yapılmamalıdır? – poolie

İlgili konular