質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

2回答

5856閲覧

【Android】JavaコードからKotlinを呼ぶとシンボルが見つからない

Farman

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2016/07/19 07:12

編集2016/07/19 07:27

お世話になります。

現在、既存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}

どなたか解決法をご存知でしたらご教授ください。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決しました。

理由はretrolambdaを利用しているからでした。
どうやらKotlinとretrolambdaは併用できないようです。

投稿2016/07/20 00:54

Farman

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Kotlin のコードにパッケージ宣言がないからではないでしょうか?

kotlin

1package com.example.hoge

投稿2016/07/19 07:22

thinca

総合スコア1864

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Farman

2016/07/19 07:24

早速の回答ありがとうございます。 すみません、こちらの表記漏れでした。 パッケージ宣言はしております。 同様にMainActivityのパッケージも宣言しております。 こちら修正させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問