Kotlin基础入门 - 创建、兼容一个属于自己的Kotlin项目
- 从0 - 1 的
Kotlin项目
,后续混用Java(自带兼容,基本无需处理) Java项目
,后续兼容Kt(原始为Java项目,基本无kt;后期加入kt
)
其实兼容一个原始Java项目让其能顺利的运行,我们仅需创建一个Kotlin项目,然后对比俩者的相关kt配置,就可以查缺补漏了~
-
-
- 创建一个从0 - 1 Java、Kotlin 项目
-
- Java项目
- Kotlin项目
- Java兼容Kt
- 兼容中可能遇到的问题
-
- java 调用 kotlin 找不到符号
- 报错 Plugin with id 'kotlin-android' not found.*
- module使用kotlin报错找不到类
-
创建一个从0 - 1 Java、Kotlin 项目
在新建项目时,我们的Language 对应选择 Java、Kotlin
即可,新建过后gradle
会加载相关依赖配置
Java项目
我们先把Java项目
的配置作为标准,看一下Project
、和moudle
的 build.gradle
配置
build.gradle(app)
build.gradle(Project)
Kotlin项目
通过Kotlin项目对比Java项目
,主要看一下Project
、和moudle
的 build.gradle
配置(主要注意标红区域)
build.gradle(app)
build.gradle(Project)
Java兼容Kt
我在Java项目中使用到了Kt类,提示让我配置信息,这时候我们可以以下操作二选一
直接通过提示让As自行配置
也可以尝试将Kt中的标红部分copy过来试一试
在Kt类As在右上角会提示configure ,点击之后可以选择配置全部组件或单个组件
我们来看下添加的配置,把标红的copy进去也行
build.gradle(app)- 图示
build.gradle(app)- 代码
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } android { namespace 'com.example.javademo' compileSdk 32 defaultConfig { applicationId "com.example.javademo" minSdk 21 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.core:core-ktx:+' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' }
build.gradle(Project)- 图示
build.gradle(Project)- 代码
// Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { id 'com.android.application' version '7.3.1' apply false id 'com.android.library' version '7.3.1' apply false id 'org.jetbrains.kotlin.android' version '1.8.0-Beta' apply false }
兼容中可能遇到的问题
主要记录我当时在Java项目中首次使用kt遇到的问题
java 调用 kotlin 找不到符号
检查kotlin
配置时,发现module
下的build.gradle
中没有使用kotlin
插件
apply plugin: 'kotlin-android'
报错 Plugin with id ‘kotlin-android’ not found.*
你可以查看下你的项目Gradle
文件,加上如图两行代码:
ext.kotlin_version="1.3.30" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
图示
module使用kotlin报错找不到类
module
开发时,如果选择语言为kotlin
可能会出现编译时报错,Unresolved reference:xxx.xxx.xxx
其实类本身是存在的,但是由于是kotlin语法写的,所以需要一个转译,否则编译的时候无法识别。
在module的build.gradle
下添加下面语句:
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
提示: apply plugin: 'kotlin-android-extensions'
早期使用,现在基本已经被废弃了
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' }
本文作者:cps666
本文链接:https://www.cnblogs.com/cps666/p/17356449.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 我与微信审核的“相爱相杀”看个人小程序副业