[英]How can I use both Realm.io and Dagger (or any multiple dependencies that need annotation processing)?
我正在嘗試在我的Android應用程序中同時使用Realm.io和Dagger ,但我似乎遇到了META-INF/services/javax.annotation.processing.Processor
文件的沖突問題。
我已經嘗試將以下內容添加到我的build.gradle文件中:
packagingOptions {
pickFirst 'META-INF/services/javax.annotation.processing.Processor'
}
並嘗試使用exclude
,但我得到的錯誤,如注釋處理器沒有在任何一個項目中運行。
我一直遇到的錯誤是Module adapter for class could not be loaded.
的標准Module adapter for class could not be loaded.
。
我認為正在發生的是,由於兩個AnnotationProcessors都沒有被保留,一個或另一個包的處理器不會發生,但我可能會離開。
你的AnnotationProcessors不應該在你的compile
依賴范圍內,它們應該是provided
或者,如果你使用android-apt , apt
。
它看起來並不像Realm那樣將它們的注釋處理器分開,因此需要保留在編譯類路徑中,但是匕首編譯器可以移動到提供的位置。
這最終會看起來像這樣:
compile 'com.squareup.dagger:dagger:1.2.2'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'io.realm:realm-android:0.87.1'
提供的(或apt)作用域使得編譯器可以使用依賴項,但不會將它們包含在最終產品中,而不需要它們。 您遇到的沖突是在dex進程中,但在這些范圍內,這些類永遠不會那么遠。
這還有一個額外的好處,即縮小最終APK的大小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.