要在2.3.0之前使用Android Annotations,一个人会这样做:
dependencies {
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
}
要使用Kotlin,您可以使用kapt
代替apt
(link)。
从2.3.0开始,一个人需要使用annotationProcessor而不是apt:
annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
为了将Kotlin与annotationProcessor一起使用,有谁知道需要改变什么?
我目前有一个非常简单的主要活动,我设置为使用@EActivity
来获取布局。我在清单.MainActivity_
中声明了生成的文件。
在java中,这很好用。在科特林:
@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:路径上没有找到类“[...]。MainActivity_”:DexPathList [[zip file“ /data/app/[...]-1/base.apk"],nativeLibraryDirectories=[/data/app/[...]-1/lib/x86,/ vendor / lib,/ system / lib]]
****更新****
所以我清理并重建了这个项目。似乎注释没有为MainActivity生成下划线文件。有道理,但我不知道为什么或如何解决它。
答案 0 :(得分:0)
如果要使用Kotlin代码进行注释处理,则必须使用kapt
(和apply plugin: 'kotlin-kapt'
)代替annotationProcessor
(只有在不生成任何代码时才能继续使用annotationProcessor)来自Kotlin的消息来源,例如你的例子中,你用Kotlin编写的MainActivity)