之前使用Android註解到2.3.0一個人這樣做:Android的註解與科特林和構建工具2.3.0
dependencies {
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
}
使用科特林你會用kapt
代替apt
(link)。
由於2.3.0一個人需要使用annotationProcessor代替apt:
annotationProcessor "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
有誰知道需要什麼才能使用科特林與annotationProcessor改變?
我目前有一個非常簡單的主要活動,我設置了使用@EActivity
來獲取佈局。我在清單.MainActivity_
中聲明瞭生成的文件。
在java中,這工作正常。在科特林:
@EActivity(R.layout.activity_main)
open class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
我得到一個運行時錯誤:
Process: [...], PID: 10018 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{[...].MainActivity_}: java.lang.ClassNotFoundException: Didn't find class "[...].MainActivity_" on path: DexPathList[[zip file "/data/app/[...]-1/base.apk"],nativeLibraryDirectories=[/data/app/[...]-1/lib/x86, /vendor/lib, /system/lib]]
**** ****更新
所以我清理和重建項目。看起來註釋並沒有爲MainActivity生成下劃線文件。有道理,但我不知道爲什麼或如何解決它。
你能指出我(或提供您的答案)究竟如何設置我的gradle文件來做到這一點?我試圖'應用插件:'kotlin-kapt',它說插件找不到?謝謝! – MayNotBe
你確定在gradle buildscript中有kotlin gradle插件嗎?你應該在你的'buildscript.dependendencies'塊中有'classpath'org.jetbrains.kotlin:kotlin-gradle-plugin:$ KOTLIN_VERSION「''。 有關kapt的更多信息 - https://kotlinlang.org/docs/reference/kapt.html 此外,請確保您已將'kotlin-android'和'kotlin-kapt'插件應用於您的應用程序模塊('app '模塊默認) – gildor
我很感謝幫助!我已經走得更遠了,我可以用插件構建所有東西,但我需要告訴AA清單所在的位置。我正在使用''這是我用'apt'(我剛剛改成了'kapt')時使用的'kapt {參數androidManifestFile variant.outputs [0] .processResources.manifestFile } }。但這不起作用。錯誤:(48,0)沒有這樣的屬性:processResources類:com.android.build.gradle.internal.variant.ApkVariantOutputData Open File' – MayNotBe