我有一個使用anko和kotlin android擴展的中型Kotlin項目,特別是資源ID的綜合屬性。他們都停止了我的升級到Android Studio 3.0 Canary 1.儘管看起來他們也停止了爲AS 2.3.2工作。我應該在Android Studio 3.0 Canary 1中使用哪些kotlin版本?
下面是相關頂層構建腳本:
buildscript {
ext.kotlin_version = '1.1.2'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
...
而且在我的應用程序模塊的構建腳本,相關的配件有:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
repositories {
mavenCentral()
jcenter()
}
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
dataBinding {
enabled = true
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'org.jetbrains.anko:anko-sdk21:0.9.1'
compile 'org.jetbrains.anko:anko-support-v4:0.9.1'
compile 'org.jetbrains.anko:anko-appcompat-v7:0.9.1'
kapt "com.android.databinding:compiler:2.5.0-alpha-preview-02"
}
kapt {
generateStubs = true
}
我的命令行構建成功;實際上IDE中的構建成功了。但Kotlin現在爲我所有的合成物業使用提供了紅色標識符。
一個可能的線索就是科特林似乎並沒有認識到我的活動(一個AppCompatActivity)爲背景的子類:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MultiDex.install(this)
的「本」是錯誤下劃線,說它預期背景!並獲得了MainActivity;我的MainActivity被定義爲:
class MainActivity : AppCompatActivity() {
我的Kotlin IDE插件是1.1.2-4。我不知道如何將它恢復到舊版本。
我試着重新安裝Android Studio 2.3.2,但沒有任何Kotlin插件在那裏工作。
而不是使用'this',嘗試使用'getApplicationContext()'。 –
MainActivity的類聲明是否也加下劃線?如果是這樣,那麼先解決這個錯誤,看看屬性下劃線是否消失。 如果MainActivity的類聲明出錯,那麼插件可能無法識別它從上下文繼承,正如你猜測的那樣。 – roobyroo