不能从java模块调用kotlin模块
我想在java中有一个android应用程序,但是在kotlin中有一个库模块。 但是,当我尝试在手机中运行应用程序时,出现错误,说找不到我的Kotlin类。 这是我的科林类:
package com.example.mylibrary import android.util.Log class A { fun helloWorld(){ Log.d("Kotlin", "Hello World!") } }
和我的kotlin模块的gradle文件:
apply plugin: 'com.android.library' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { minSdkVersion 11 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.2.1' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } buildscript { ext.kotlin_version = '0.6.+' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } repositories { mavenCentral() }
这是我的主要活动:
package com.example.uisample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.example.mylibrary.A; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); A obj = new A(); obj.helloWorld(); } }
注意android studio如何导入com.example.mylibrary.A
而不是com.example.mylibrar.Akt
作为参考。 Android Studio在编译之前报告没有错误。
Gradle文件的应用程序:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.example.uisample" minSdkVersion 11 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.1' compile project(':mylibrary') }
运行该项目后,gradle抛出这个错误:“找不到符号类A”。 我究竟做错了什么?
一些东西:
-
将kotlin-android插件应用到您的库模块build.gradle( 请参阅文档 ):
apply plugin: 'kotlin-android'
就目前而言,你甚至不会告诉gradle来编译Kotlin文件。
-
你的buildscript块可能应该在顶层的build.gradle,而不是模块build.gradle。
-
考虑更新完全发布的Kotlin 1.0.1-2版本
- 如何使用Kotlin设置OnEditorActionListener
- 如何将ByteArray转换为Kotlin中指定字符集的字符串
- Kotlin setOnclickListener
- “对于超类型的Kotlin Android Studio的直接争论,不允许有预测
- Android OutOfMemoryError:未能分配一个57993496字节分配与16764448空闲字节
- 如何解决:“错误:无法找到符号类…”转换后的Java类Kotlin?
- 更新Android Studio后无法打开项目
- 当处于调试器模式时,Android Studio 1.5与Kotlin Plugin异常。 如何解决它?
- 迭代时从列表中移除IndexOutOfBoundsException:Java-> Kotlin