お世話になります。
現在、既存Androidアプリの一部をKotlinで実装したいと思っています。
しかし、Javaからkotlinのクラスをインポートすると以下のようなエラーが出ます。
Error:(16, 59) エラー: パッケージcom.example.hoge.HogeClassは存在しません Error:(172, 35) エラー: シンボルを見つけられません シンボル: クラス HogeClass 場所: クラス HogeClass
rootのgradleは以下です
buildscript { ext.kotlin_version = '1.0.3' repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' classpath 'me.tatarka:gradle-retrolambda:2.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
appのgradleは以下です。
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'android-apt' apply plugin: 'me.tatarka.retrolambda' tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.example.hoge.HogeClass" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } sourceSets { main.java.srcDirs += 'src/main/kotlin' androidTest.java.srcDirs += 'src/androidTest/kotlin' } } repositories { jcenter() mavenCentral() maven { url "https://jitpack.io" } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' apt 'com.jakewharton:butterknife-compiler:8.0.1' apt 'com.google.dagger:dagger-compiler:2.0.2' provided 'javax.annotation:jsr250-api:1.0' compile 'org.apache.commons:commons-lang3:3.4' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.jakewharton:butterknife:8.0.1' compile 'com.android.support:support-v4:23.4.0' compile 'com.android.support:recyclerview-v7:23.4.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" }
kotlinで書いたデータクラスのコードです
kotlin
1package com.example.hoge 2 3data class HogeClass(var name: String = "Test") { 4}
Javaで書いたMainActivityコードです
MainActivity.java
1package com.example.hoge 2 3import android.support.v7.app.AppCompatActivity; 4import android.os.Bundle; 5import android.util.Log; 6 7import com.example.hoge.HogeClass; 8 9public class MainActivity extends AppCompatActivity { 10 11 private String name; 12 private int age; 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 HogeClass hoge = new HogeClass(); 18 Log.d("tag",hoge.getName()); 19 } 20}
どなたか解決法をご存知でしたらご教授ください。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。