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、和moudlebuild.gradle配置

build.gradle(app)

在这里插入图片描述

build.gradle(Project)

在这里插入图片描述

Kotlin项目

通过Kotlin项目对比Java项目,主要看一下Project、和moudlebuild.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 中国大陆许可协议进行许可。

posted @   cps666  阅读(248)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 我与微信审核的“相爱相杀”看个人小程序副业
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.