7

Enstrümanlı testler için, TestComponent'u oluşturan bir TestApplication var, ancak dosya artık oluşturulmuyor (Error:/xxx/TestApplication.java:16: The import.xxx.DaggerTestApplicationComponent cannot be resolved). Kök nedenini tespit edemiyorum. Ben farklı Android Studio (2.2, 2.1.2), farklı gradle eklentisi (2.2.0-alpha6, 5, 4) ve hançer farklı sürümleri (2.2 - 2.6) denedim.ek notProcessor + androidTest + dagger2

androidTestAnnotationProcessor mu kullanmalıyım?

düzenlemek (bundan önce böyle değildi): hançer 2.6 kullanımı, classpath 'com.google.guava:guava:19.0'

güncellemesini eklemeniz gerekir: bir sorun dolayısıyla Component oluşturmak edilemedi, bir Module ile oldu. Ancak, kriko kullanarak (hata ayıklama seçenekleriyle bile), sorunu göremedim. Şimdilik, java 7'ye geri dön, gradle 2.1.2 eklentisi. Bu şekilde, hangi guava versiyonunun ve tüm son lib'lerin kullanılabileceğini belirtmeye gerek yoktur (hançer 2.6, butterknife 8.2.1, apt 1.8)

+0

komut satırından olarak oluşturmak çalıştın? Orada hala hantal – njzk2

+0

olmasa da hançer ve test dosya üretimi ile bir sorun vardı ... Ama ben jack – mbmc

cevap

9

Aynı problemi Dagger 2.9 ile de yaşadım. compileDebugAndroidTestSources başarıyla tamamlandı ancak Dagger*Component oluşturulmadı.

androidTestAnnotationProcessor 'com.google.dagger:dagger-compiler:2.9'

ekleyin ve yeniden compileDebugAndroidTestSources yürütün: Bu soru üzerine ve son olarak bazı deneylerle indi yaklaşık bir saat boyunca mücadele sonra

bir çözüm buldu. Şimdi grafik oluşturulmalıdır (grafiğinizin tamamlanmış olması durumunda, derleme için Dagger*Component referansına geçici olarak yorum yapmanız gerekebilir).

sizin grafik ile sorun varsa (örneğin @Provides eksik) şimdi (görev bir hata olmadan tamamladıktan ama kaynaklar oluşturulmaz nerede androidTestAnnotationProcessor olmadan önceki devlet aksine) bir hata alırsınız

<rant>

Dagger'i çok severdim ama her seferinde uzun ticari projeler için büyük bir risk oluşturan bazı garip problemler var. Ayrıca hala yeni geliştiriciler tarafından öğrenmeyi çok zorlaştıran iyi bir dokümantasyona sahip değiller. Muhtemelen sadece Dagger'in kusuru degil, muhtemelen gradle ve Android Studio'nun problemlere katilmasina ragmen ciddi olarak düsünüyorum.

</rant>

+0

yaptıktan sonra gerçekleşmeye başladığından şüpheleniyorum Eğer yürütme yürütme, işe yaramazsa. Görev derlemeDebugAndroidTestSources çağrısı oluşturur mu? – Sunnyday