2016-05-21 16 views
3

"Kotlin for Android Developers"の指示に基づいて基本的なKotlinベースのAndroidアプリをテストしています。私はAndroid Studio 2.1.1を使用しています。Kotlin Android Appコンパイルに失敗しました。メッセージ:未解決の参照:kotlinx

私は、次のbuild.gradeを持っている(プロジェクト:WeatherApp)セットアップ:

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

Iを(モジュール:APP)以下build.gradeを持っている:私は、次のしている

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() 
} 

セットアップMainActivity.ktコード:ここで

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!" 
    } 
} 

は私activity_main.xmlコードです:

私が利用可能ネクサス6 API 23エミュレータを使用して、私のMainActivityを実行しようとしています

<resources> 
    <string name="app_name">WeatherApp</string> 
    <string name="hello_world">"Hello World!"</string> 
</resources> 

<?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> 

は、ここに私のstrings.xmlコードです。私はオプション "Tools >> Android >> Enable ADB Integration"をオンにしてチェックしました(これもやってみました)。エミュレータが動作しているように見えますが、私のアプリケーションはビルドに失敗して読み込み中ではないようです。ウィンドウ私はGradleのコンソールで次のように表示

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 

::私はイベントログウィンドウに以下を参照してください

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 

:エミュレータを実行しているとき、私は、「ファイル名を指定して実行4」に次のメッセージを参照してくださいウィンドウ:

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 

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 

メッセージセクションでは、私は以下を参照してください。

アプリを正しくコンパイルするにはどうすればよいですか?

+0

logcatログにエラーメッセージが表示されますか? – miensol

+0

こんにちはmiensol、上の編集された説明でいくつかのデバッグメッセージを追加しました。主な問題は、(1)タスク 'app:compileDebugKotlin'、(2)未解決の参照:kotlinx e:、(3)未解決の参照:メッセージの実行に失敗したようです。 – MLev

+0

貼り付けログには、コンパイルエラーがあることが明確に示されています。これが解決すべき最初の問題です。 [これ](http://stackoverflow.com/questions/34169562/unresolved-reference-kotlinx)を試して、助けてくれたらお知らせください。 – miensol

答えて

6

は、次の応答を参照してください。https://stackoverflow.com/a/36526153/256513

をあなたのモジュールbuild.gradleファイルにあなたのプロジェクトbuild.gradleからkotlin buildscriptセクションを移動する必要があります。

+0

これは完璧に働いた、ありがとう!上記のビルド・ファイルのバージョンも、将来の参照のために編集します。 – MLev

0

R拡張からレイアウトファイルをインポートします。 このように

import kotlindemo.app.com.myapplication.R.layout.activity_main; 
import kotlinx.android.synthetic.main.activity_main.* 
関連する問題