kotlin编译失败_Kotlin Android App编译失败并显示消息:未解决的参考:kotlinx

I am testing out a basic Kotlin-based Android app based on the instructions in the "Kotlin for Android Developers" book. I am using Android Studio 2.1.1.

I have the following build.grade (Project: WeatherApp) setup:

allprojects {

repositories {

jcenter()

}

}

task clean(type: Delete) {

delete rootProject.buildDir

}

I have the following build.grade (Module:App) setup:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

buildscript {

ext.support_version = '23.1.1'

ext.kotlin_version = '1.0.2'

ext.anko_version = '0.8.2'

repositories {

jcenter()

}

dependencies {

classpath 'com.android.tools.build:gradle:2.1.0'

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

// NOTE: Do not place your application dependencies here; they belong

// in the individual module build.gradle files

}

}

android {

compileSdkVersion 23

buildToolsVersion "23.0.1"

defaultConfig {

applicationId "com.qtimemedia.weatherapp"

minSdkVersion 15

targetSdkVersion 23

versionCode 1

versionName "1.0"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

sourceSets {

main.java.srcDirs += 'src/main/kotlin'

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:23.4.0'

compile 'org.jetbrains.anko:anko-sdk23:0.8.3'

compile 'org.jetbrains.anko:anko-appcompat-v7:0.8.3'

compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

}

repositories {

mavenCentral()

}

I have the following MainActivity.kt code:

package com.qtimemedia.weatherapp

import android.support.v7.app.AppCompatActivity

import android.os.Bundle

import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

message.text = "Hello Kotlin!"

}

}

Here is my activity_main.xml code:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context="com.qtimemedia.weatherapp.MainActivity">

android:id="@+id/message"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world" />

Here is my strings.xml code:

WeatherApp

"Hello World!"

I am trying to run my MainActivity using the available Nexus 6 API 23 emulator. I have the option "Tools >> Android >> Enable ADB Integration" checked as on (I tried this with it off as well). The emulator appears to be working but my app does not appear to be loading due to a failed build. When running the emulator I see the following messages in the "4: Run" window:

C:\Users\Owner\AppData\Local\Android\sdk\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_6_API_23

Warning: requested ram_size 1536M too big, reduced to 1024M

emulator: WARNING: Crash service did not start

emulator: WARNING: VM heap size set below hardware specified minimum of 384MB

emulator: WARNING: Setting VM heap size to 384MB

Hax is enabled

Hax ram_size 0x40000000

HAX is working and emulator runs in fast virt mode.

console on port 5554, ADB on port 5555

I see the following in the Event Log window:

11:26:05 PM Gradle sync started

11:26:15 PM Gradle sync completed

11:26:16 PM Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]

11:26:34 PM Gradle build finished in 18s 266ms

11:35:55 PM Executing tasks: [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:assembleDebug]

11:39:04 PM Gradle build finished with 3 error(s) in 3m 8s 551ms

I see the following in the Gradle Console window:

e: C:\Users\Owner\AndroidStudioProjects\WeatherApp\app\src\main\java\com\qtimemedia\weatherapp\MainActivity.kt: (5, 8): Unresolved reference: kotlinx

e: C:\Users\Owner\AndroidStudioProjects\WeatherApp\app\src\main\java\com\qtimemedia\weatherapp\MainActivity.kt: (12, 9): Unresolved reference: message

FAILED

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':app:compileDebugKotlin'.

> Compilation error. See log for more details

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3 mins 5.237 secs

In the Messages section I see the following:

C:\Users\Owner\AndroidStudioProjects\WeatherApp\app\src\main\java\com\qtimemedia\weatherapp\MainActivity.kt

Error:(5, 8) Unresolved reference: kotlinx

Error:(12, 9) Unresolved reference: message

Error:Execution failed for task ':app:compileDebugKotlin'.

> Compilation error. See log for more details

Information:BUILD FAILED

Information:Total time: 3 mins 5.237 secs

Information:3 errors

Information:0 warnings

Information:See complete output in console

How can I get the app to compile properly?

解决方案

You need to move the kotlin buildscript section from your project build.gradle to your module build.gradle file.

你可能感兴趣的:(kotlin编译失败)