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

news2024/10/6 14:35:49

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语言了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET淘宝店主交易管理系统的设计与实现

摘 要 淘宝店主交易管理系统主要采用了ASPACCESS的B/S设计模式,通过网络之间的数据交换来实现客户、商品、交易的管理和对客户、商品、交易统计工作,从而提高淘宝店主在管理网店过程中的工作效率和质量。 系统分为基本资料模块,统计资料模…

基于ssm+vue+Mysql的药源购物网站

开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.…

知识图谱与知识表示:人工智能的基石

知识图谱与知识表示:人工智能的基石 一、知识图谱:连接数据的桥梁1.1 知识图谱的构成1.2 知识图谱的应用 二、知识表示:AI的推理基础2.1 知识表示的定义2.2 知识表示的形式 三、从符号表示到向量表示3.1 符号表示与向量表示3.2 向量表示的优势…

virtualbox kafka nat + host-only集群 + windows 外网 多网卡

virtualbox kafka nat + host-only集群 + windows 映射访问 kafka集群搭建背景kafka集群搭建 背景 使用virtualbox搭建kafka集群,涉及到不同网络策略的取舍 首先 桥接 网络虽说 啥都可以,但是涉及到过多ip的时候,而且还不能保证使用的ip不被占用,所以个人选择kafka虚拟机…

带宽的理解-笔记

带宽的理解 带宽(频带宽度):是指电磁波最高频率和最低频率的差值,这一段频率被称为带宽。 举例说明 人耳能听到的频率范围是20赫兹到2万赫兹。换句话说,人而只对20赫兹至2万赫兹的声音频率有反应,超出或低于这一频率范围的声音我…

目标检测发展概述

前言 本篇文章只是简单介绍一下目标检测这一计算机视觉方向的发展历史,因此重点在于介绍而不是完整阐述各个时期的代表算法,只要能够简单了解到目标检测的发展历史那么本文的目的就达到了。 目标检测的任务 从上图不难看出,目标检测是计算机…

快速了解Django:核心概念解析与实践指南

title: 快速了解Django:核心概念解析与实践指南 date: 2024/5/1 20:31:41 updated: 2024/5/1 20:31:41 categories: 后端开发 tags: Django核心路由系统视图系统ORM管理中间件Web框架登录装饰器 第一章:Django简介 背景和发展历程: Djan…

pyinstaller打包pytorch和transformers程序

记录使用pyinstaller打包含有pytorch和transformers库的程序时遇到的问题和解决方法。 环境和版本信息 操作系统:Windows 11 Python:3.10.12 pyinstaller:5.13.0 torch:2.2.2 transformers:4.40.1 打包过程和问…

MATLAB 数据导入

MATLAB 数据导入(ImportData) 在MATLAB中导入数据意味着从外部文件加载数据。该importdata功能允许加载不同格式的各种数据文件。它具有以下五种形式 序号 功能说明 1 A importdata(filename) 从filename表示的文件中将数据加载到数组A中。 2 A i…

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube

【Docker】搭建一个媒体服务器插件后端API服务 - MetaTube 前言 本教程基于群晖的NAS设备DS423的docker功能进行搭建,DSM版为 7.2.1-69057 Update 5。 简介 MetaTube 是一个媒体服务器插件,主要用于 Emby 和 Jellyfin 媒体服务器。它的主要功能是从互…

unity制作app(1)--登录 注册 界面

把学到的知识投入到生产中反而是一件简单的事情! 1.调整canvas的形状,这里和camera没有任何关系! overlay! 2.既然自适应,空间按钮的位置比例就很重要了! game窗口中新增720*1280的分辨率! 3.再回到can…

11【PS Blender 作图】场景作图 景深

【问题背景】 看下图,是一个插画师的作图,是不是好像现实场景;合理利用景深,让画面好像是3D现实场景 那么如何才能完成这样让人身临其境的画面呢? 大体有两个方法: 【1】2D插画,合理利用景深;如用PS画图,在画图的时候注意 画面构图,让2D的画面,看起来像3D 缺点…

神经网络参数初始化

一、引入 在深度学习和机器学习的世界中,神经网络是构建智能系统的重要基石,参数初始化是神经网络训练过程中的一个重要步骤。在构建神经网络时,我们需要为权重和偏置等参数赋予初始值。对于偏置,通常可以将其初始化为0或者较小的…

6.python网络编程

文章目录 1.生产者消费者-生成器版2.生产者消费者--异步版本3.客户端/服务端-多线程版4.IO多路复用TCPServer模型4.1Select4.2Epoll 5.异步IO多路复用TCPServer模型 1.生产者消费者-生成器版 import time# 消费者 def consumer():cnt yieldwhile True:if cnt < 0:# 暂停、…

2024年五一数学建模竞赛C题论文首发

基于随机森林的煤矿深部开采冲击地压危险预测 摘要 煤炭作为中国重要的能源和工业原料&#xff0c;其开采活动对国家经济的稳定与发展起着至关重要的作用。本文将使用题目给出的数据探索更为高效的数据分析方法和更先进的监测设备&#xff0c;以提高预警系统的准确性和可靠性…

键盘更新计划

作为 IT 搬砖人&#xff0c;一直都认为键盘没有什么太大关系。 每次都是公司发什么用什么。 但随着用几年后&#xff0c;发现现在的键盘经常出问题&#xff0c;比如说调节音量的时候通常莫名其妙的卡死&#xff0c;要不就是最大音量要不就是最小音量。 按键 M 不知道什么原因…

服务运营 | 精选:花钱买开心!体验型服务设计中的调度优化

编者按 在体验经济时代&#xff0c;企业逐渐从提供产品转变为提供体验&#xff0c;只有了解顾客的行为&#xff0c;才能对服务进行更好的设计&#xff0c;从而提高顾客的体验和忠诚度&#xff0c;实现企业与顾客的双赢。如何优化顾客体验便是体验型服务设计&#xff08;Experie…

通过自然语言处理执行特定任务的AI Agents;大模型控制NPC执行一系列的动作;个人化的电子邮件助手Panza

✨ 1: OpenAgents 通过自然语言处理执行特定任务的AI代理 OpenAgents是一个开放平台&#xff0c;旨在使语言代理&#xff08;即通过自然语言处理执行特定任务的AI代理&#xff09;的使用和托管变得更加便捷和实用。它特别适合于日常生活中对数据分析、工具插件获取和网络浏览…

鹏哥C语言复习——内存函数

目录 一.memcpy函数 二.memmove函数 三.memset函数 四.memcmp函数 一.memcpy函数 该函数是针对内存块进行拷贝操作&#xff0c;mem即为memory&#xff0c;是内存的意思&#xff1b;cpy就是copy&#xff0c;是拷贝的意思 int arr[] { 1,2,3,4,5,6,7,8,9,10 }; int arr2[2…

C++中的右值引用和移动语义

1 左值引用和右值引用 传统的C语法中就有引用的语法&#xff0c;而C11中新增了的右值引用语法特性&#xff0c;所以从现在开始我们之前学习的引用就叫做左值引用。无论左值引用还是右值引用&#xff0c;都是给对象取别名。 什么是左值&#xff1f;什么是左值引用&#xff1f; 左…