Android(Java)项目支持Kotlin语言开发

Android(Java)项目通过相关Kotlin设置后,允许同时使用Java语言和Kotlin语言进行开发代码的。

示例环境:

Android Studio Giraffe | 2022.3.1 Patch 3
Java 8
Kotlin 1.9.20

设置Kotlin选项:

第一步:在项目根目录下build.gradle配置,增加对Kotlin 1.9.20版本的支持:id ‘org.jetbrains.kotlin.android’ version “1.9.20” apply false ,示例代码:

plugins {
    id 'com.android.application' version '8.1.3' apply false
    id 'org.jetbrains.kotlin.android' version "1.9.20" apply false  //支持Kotlin
}

示例截图:
Android(Java)项目支持Kotlin语言

第二步: app目录下build.gradle配置,增加对Kotlin 1.9.20版本的支持
1)在plugins{} 中添加:id ‘org.jetbrains.kotlin.android’ ,示例代码:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

2)在android{}中添加kotlinOptions选项,示例代码:

kotlinOptions {
    jvmTarget = "1.8"
}

3)在dependencies{}中添加kotlin,示例代码:

//Android(Java)项目支持Kotlin语言
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.20"
// 支持 Java 8
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20"

查看build.gradle (:app)整体示例代码:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'   //支持Kotlin
}

android {
    namespace 'com.devtps.ddsdprintdemo'
    compileSdk 33

    defaultConfig {
        applicationId "com.devtps.ddsdprintdemo"
        minSdk 24
        targetSdk 33
        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
    }
    //支持Kotlin
    kotlinOptions {
        jvmTarget = "1.8"
    }

}

dependencies {

    implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    implementation "androidx.appcompat:appcompat:1.4.1"
    implementation 'com.google.android.material:material:1.8.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
    //Android(Java)项目支持Kotlin语言
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.20"
    // 支持 Java 8
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.20"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20"

}

通过以上设置后,Android(Java)项目支持Java语言和Kotlin语言开发。

测试Kotlin开发

当添加Activity时,可以选择java语言或Kotlin语言创建了,如下图所示:
Activity同时支持java语言和Kotlin语言

说明Android(Java)项目同时支持Java语言和Kotlin语言了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/587562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI大模型探索之路-训练篇9:大语言模型Transformer库-Pipeline组件实践

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

Sentinel 控制台学习

引言 上篇文章已经讲过 SpringCloud Sentinel集成到微服务项目中,接下来我们继续学习怎么使用sentinel控制台对微服务进行限流,熔断,降级等一系列操作。 控制台 接下来我们单独讲解每一个菜单按钮 实时监控 实时监控: 可以看到…

必应广告投放怎么做?怎么开户推广?

今天搜索引擎广告依旧是企业提升品牌知名度、吸引潜在客户的关键渠道之一,必应Bing,作为全球第二大搜索引擎,不仅拥有庞大的用户基础,更以其精准的定向能力和高效的转化效率,成为众多企业拓展市场的优选平台。 一、必…

【Java探索之旅】包管理精粹 Java中包的概念与实践

文章目录 📑前言一、封装1.1 封装的概念1.2 访问限定修饰符 二、封装扩展(包)2.1 包的概念2.2 带入包中的类2.3 自定义包2.4 常见的包 🌤️全篇总结 📑前言 在Java编程中,封装是面向对象编程的核心概念之一…

PotatoPie 4.0 实验教程(32) —— FPGA实现摄像头图像浮雕效果

什么是浮雕效果? 浮雕效果是一种图像处理技术,用于将图像转换为看起来像浮雕一样的效果,给人一种凸起或凹陷的立体感觉,下面第二张图就是图像处理实现浮雕效果。 不过这个图是用Adobe公司的PS人工P图实现的,效果比较…

【R语言数据分析】数据类型与数据结构

R的数据类型有数值型num,字符型chr,逻辑型logi等等。 R最常处理的数据结构是:向量,数据框,矩阵,列表。 向量有数值型向量,字符型向量,逻辑型向量等,字符型向量就是反应…

二维码门楼牌管理应用平台建设:实现用户权限的高效管理

文章目录 前言一、用户权限管理的重要性二、用户管理中心的构建三、用户权限管理的实施策略四、用户权限管理的挑战与应对五、结语 前言 随着信息技术的飞速发展,二维码门楼牌管理应用平台已成为城市管理的重要组成部分。本文将深入探讨如何通过用户权限管理&#…

基于SpringBoot+Vue外卖系统设计和实现(源码+LW+部署讲解)

🌹作者简介:✌全网粉丝10W,csdn特邀作者、博客专家、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 🌹 主要…

STM32(c语言基础)

1.硬件部分:按键,传感器 传感器模块:光敏电阻,热敏电阻,红外接收管 光敏电阻:光线越强,光敏电阻的阻值就越小; 热敏电阻:温度越高,热敏电阻的阻值越小&…

Vitis HLS 学习笔记--AXI4 主接口

目录 1. 简介 2. 认识MAXI 3. MAXI突发操作 3.1 全局/本地存储器 3.2 MAXI优势与特点 3.3 查看MAXI报告 3.3.1 HW Interfaces 3.3.2 M_AXI Burst Information 3.4 MAXI 资源消耗 4. 理解 Volatile 4.1 标准C/C中的 volatile 4.2 HLS 中的 volatile 5. 总结 1. 简介…

Blog图床

img avatar Audrey.webp icon.png personal.webp

labview强制转换的一个坑

32位整形强制转换成枚举的结果如何? 你以为的结果是 实际上的结果是 仔细看,枚举的数据类型是U16,"1"的数据类型是U32,所以转换产生了不可预期的结果。所以使用强制转换时一定要保证两个数据类型一致,否则…

深入理解多层感知机MLP

1. 基础理论 神经网络基础: 目标:了解神经网络的结构,包括神经元、权重、偏置和激活函数。 神经网络是由多个层次的神经元组成的网络,它模拟了人脑处理信息的方式。每个神经元可以接收输入、处理输入并生成输出。这一过程涉及到…

【学习AI-相关路程-工具使用-NVIDIA SDK MANAGER==NVIDIA-jetson刷机工具安装使用 】

【学习AI-相关路程-工具使用-NVIDIA SDK manager-NVIDIA-jetson刷机工具安装使用 】 1、前言2、环境配置3、知识点了解(1)jetson 系列硬件了解(2)以下大致罗列jetson系列1. Jetson Nano2. Jetson TX23. Jetson Xavier NX4. Jetson…

Hi3519AV100 处理器⾼速全局快⻔相机

⾼速全局快⻔相机采⽤ 1英⼨全局快⻔ Sensor,⽀持 H.264/H.265 编码,8 百万 分辨率模式下最⾼帧率可达 50 帧/秒,1080P 模式下最⾼帧率可达 120 帧/秒。主控采⽤ Hi3519AV100 处理器,集成 2 Tops AI 算⼒ NPU ,⽀持⼤…

华为5700配置

恢复出厂设置,清空配置 1、更改名字 system-view sysname tp-10-50-01-04 2、配置管理接口 int vlan 1 ip add 10.50.1.4 255.255.254.0 quit 2、链路汇聚 interface eth-trunk 1 mode lacp quit 3、绑定端口 interface eth-trunk 1 trunkport gigabitethernet …

制作一个 rpm 软件包

首发日期 2024-04-30, 以下为原文内容: 本文以 ibrus (艾刷, 胖喵拼音 ibus 接口模块) 为例, 介绍 rpm 软件包的制作过程. 相关文章: 《发布 AUR 软件包 (ArchLinux)》 https://blog.csdn.net/secext2022/article/details/136803790《多种双拼方案的实现》 https://blog.csdn.…

Redisson分布式锁,重试锁和锁续命的原理

RedissonLock 锁重试原理 tryLock有三个三个参数,第一个是等待时间,第二个是锁失效后自动释放的时间,不填默认为-1,第三个是时间单位; 当设置了第一个参数,那这个锁就成了可重试锁;获取锁失败后&#xff0c…

人工智能|深度学习——多模态条件机制 Cross Attention 原理及实现

一、引入 虽然之前写过 Attention 的文章,但现在回头看之前写的一些文章,感觉都好啰嗦,正好下一篇要写的 Stable Diffusion 中有 cross-attention,索性就再单拎出来简单说一下 Attention 吧,那么这篇文章的作用有两个&…

图搜索算法详解与示例代码

在计算机科学领域,图搜索算法是一类用于在图数据结构中查找特定节点或路径的算法。图搜索算法在许多领域都有着广泛的应用,包括网络路由、社交网络分析、游戏开发等。本文将详细介绍几种常见的图搜索算法,包括深度优先搜索(DFS&am…