2017-05-20 87 views
3

我有一個使用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插件在那裏工作。

+0

而不是使用'this',嘗試使用'getApplicationContext()'。 –

+0

MainActivity的類聲明是否也加下劃線?如果是這樣,那麼先解決這個錯誤,看看屬性下劃線是否消失。 如果MainActivity的類聲明出錯,那麼插件可能無法識別它從上下文繼承,正如你猜測的那樣。 – roobyroo

回答

0

您至少需要使用Kotlin 1.1.2-4。 因此改變你的ext.kotlin_version

ext.kotlin_version = '1.1.2-4' 
0

可以修改的build.gradle(模塊:應用程序)文件從

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 
compile "org.jetbrains.anko:anko-commons:$anko_version" 
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') 
{ 
    transitive = true; 
} 
compile "com.squareup.retrofit2:retrofit:$retrofit_version" 
compile "com.squareup.retrofit2:converter-gson:$retrofit_version" 
compile 'com.android.support:appcompat-v7:25.3.1' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:design:25.3.1' 

}

要:

dependencies { 
implementation fileTree(include: ['*.jar'], dir: 'libs') 
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" 
implementation "org.jetbrains.anko:anko-commons:$anko_version" 
implementation('com.crashlytics.sdk.android:crashlytics:[email protected]') 
{ 
    transitive = true; 
} 
implementation "com.squareup.retrofit2:retrofit:$retrofit_version" 
implementation "com.squareup.retrofit2:converter-gson:$retrofit_version" 
implementation 'com.android.support:appcompat-v7:25.3.1' 
implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
testImplementation 'junit:junit:4.12' 
implementation 'com.android.support:design:25.3.1' 

}

然後紅色標識符將消失。

相關問題