Ich teste eine einfache Kotlin-basierte Android-App, die auf den Anweisungen im Buch "Kotlin for Android Developers" basiert. Ich benutze Android Studio 2.1.1.Kompilation der Kotlin Android App mit Meldung fehlgeschlagen: nicht aufgelöste Referenz: kotlinx
Ich habe folgendes build.grade (Projekt: WeatherApp) Einrichtung:
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Ich habe folgendes build.grade (Modul: App) Einrichtung:
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()
}
Ich habe folgendes 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!"
}
}
Hier ist mein activity_main.xml Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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">
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
Hier ist mein strings.xml Code:
<resources>
<string name="app_name">WeatherApp</string>
<string name="hello_world">"Hello World!"</string>
</resources>
Ich versuche, meine MainActivity mit dem verfügbaren Nexus 6 API 23 Emulator laufen zu lassen. Ich habe die Option "Extras >> Android >> ADB-Integration aktivieren" als aktiviert (ich habe das auch damit ausprobiert). Der Emulator scheint zu funktionieren, aber meine App scheint aufgrund eines fehlgeschlagenen Builds nicht geladen zu werden. Wenn der Emulator sehe ich die folgenden Meldungen im "4: Run" Fenstern:
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
ich folgend im Ereignisprotokoll-Fenster sehen:
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
ich folgend in der Gradle Console Fenster:
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
im Abschnitt Nachrichten sehe ich folgendes:
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
Wie kann ich die App richtig kompilieren?
Wird in Logcat-Protokollen eine Fehlermeldung angezeigt? – miensol
Hi miensol, Ich habe eine Reihe von Debugging-Nachrichten in der oben beschriebenen Beschreibung hinzugefügt. Die Hauptprobleme scheinen zu sein: (1) Ausführung fehlgeschlagen für Task ': app: compileDebugKotlin', (2) nicht aufgelöster Verweis: Kotlinx e: und (3) nicht aufgelöster Verweis: Nachricht. – MLev
Das Pastenprotokoll zeigt deutlich, dass ein Kompilierungsfehler vorliegt, der als erstes behoben werden muss. Versuchen Sie [dies] (http://stackoverflow.com/questions/34169562/unresolved-reference-kotlinx) und lassen Sie uns wissen, ob es geholfen hat. – miensol