Android注释与Kotlin和生成工具2.3.0
要在2.3.0之前使用Android Annotations,人们可以这样做:
dependencies { apt "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion" }
要使用Kotlin,您将使用kapt
而不是apt
( 链接 )。
从2.3.0开始,一个人需要使用annotationProcessor来代替apt:
annotationProcessor "org.androidannotations:androidannotations:$AAVersion" compile "org.androidannotations:androidannotations-api:$AAVersion"
有没有人知道需要更改以注释处理程序使用Kotlin?
我目前有一个非常简单的主要活动,我使用@EActivity
来设置布局。 我在manifest, .MainActivity_
声明了生成的文件。
在Java中,这工作正常。 在Kotlin:
@EActivity(R.layout.activity_main) open class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } }
我得到一个运行时错误:
过程:[…],PID:10018 java.lang.RuntimeException:无法实例化活动ComponentInfo {[…]。MainActivity_}:java.lang.ClassNotFoundException:没有find类“[…]”。 MainActivity_“的路径:DexPathList [[zip文件”/data/app/[…]-1/base.apk”],nativeLibraryDirectories=[/data/app/[…]-1/lib/x86, / vendor / lib,/ system / lib]]
****更新****
所以我清理并重建了这个项目。 看起来注解不是为MainActivity生成下划线文件。 有道理,但我不知道为什么或如何解决它。
如果您想使用Kotlin代码进行注释处理,您必须使用kapt
(并apply plugin: 'kotlin-kapt'
)而不是annotationProcessor
(只有在您不从Kotlin源生成任何代码时,您才能继续使用annotationProcessor, ,你在Kotlin有MainActivity的地方)