2010-08-17 18 views
5

kütüphane sınıflarını bulamıyor this SDK guide uyarınca, bir kütüphane projesini standart bir uygulama projesi oluşturarak, Kütüphane projesine referans vererek ve ardından birim testi için uygulamayı uygulayarak birim testini gerçekleştirebilirsiniz. Ben test uygulaması bunu ve başlattığınızda Bağımsız test kütüphanesi projesi,

Ancak, mesaj Eclipse ve Android ADT eklentisini tüm son sürümlerini kullanıyorum

No tests found with test runner 'JUnit 3'.

olsun.

Not: projeler derhal derlenir. Test projesi ayrıca emülatöre para cezası da yükler. Ancak konsolda, bunun bir test kütüphanesi olarak bir kütüphane olarak derlediğimden elbette var olmayan <library>.apk modelini görebiliyorum.

Bunu herkes işe mi aldı? Ve eğer öyleyse, burada hile nedir?

Güncelleme:, test sınıflarını (!) Içeren gerçek bir problemi keşfettikten ve düzelttikten sonra, test koşucusu artık tüm testleri bulabilir. Ama, tüm testler aşağıdaki istisnalarla başarısız:

java.lang.NoClassDefFoundError: <nameOfClassInLibraryProject>

nameOfClassInLibraryProject kütüphane projesinde tanımlanan sınıflardır. Bu sınıflar test projesine derlenmeli ve gerçekten de her şey yolunda. Ancak test projesini çalıştırırken, çalışma zamanı kitaplık sınıflarını bulmuyor gibi görünüyor.

cevap

5

Eclipse'de çok uğraşmadan ve boşa zaman geçirdikten sonra Android Kitaplığı projelerinin çalışmasını sağlamayı başardım. Working with Library Projects makaleye göre

:

Instead, you must compile the library indirectly, by referencing the library from a dependent application's build path, then building that application.

Sorun kütüphane projesi Projeler eklenecek gerektiği anlamında bu yorumlanır oldu sekme Java Oluştur Yolu. Bunu yapmak, test projesini derleyici için açık olduğundan kütüphane kodunun derlenmesini sağlar. Ancak kütüphane kendi başına .jar veya .apk olarak derlenmediğinden, kütüphane sınıfları hiçbir zaman cihaza dağıtılmaz.

çözüm değil için oldukça Kaynak sekmesinde Projeler, kütüphane projesini eklemek Bağlantı Kaynak ... düğmesini kullanarak kitaplığı/src klasörüne eklemektir. Ve evet, kitaplık proje kökü değil, src klasör kütüphanesi, test projesine bağlı olması gerekir.

+1

Aynı problemi (NoClassDefFoundError), kendi kendine yeten bir test lib projesiyle değil, bir android kitaplık projesine başvuran bir uygulama projesi için bir test projesinde bulundum. Çözümünüz daha az işe yaramadı, bunu çözmek için çok teşekkürler. – jpo

+1

Bunun için teşekkürler. Projenin özelliklerinden proje referansını kaldırdığımda ve kütüphaneyi bir Kütüphane projesi olarak eklediğimde, işe yaradı. –

+1

Kütüphaneyi, kitaplığınız olarak Android bölümünde kütüphane olarak eklemek daha kolay olacaktır: http: // stackoverflow.com/questions/8248196/how-to-add-a-kütüphane-proje-to-a-android-proje – theV0ID

İlgili konular