基于Kotlin Multiplatform实现静态文件服务器(一)

本文将介绍如何基于Kotlin Multiplatform、Jetpack Compose实现静态文件服务器,并运行在Android、Windows以及Linux(暂不支持server和mac)。

创建KMP(Kotlin Multiplatform)项目

环境设置
  1. 安装Android Studiio 2023.3.1以上版本, 之前版本需要自行安装KMP插件。

  2. 安装JDK 14以上版本,或使用Android Studio 自带jre环境,但缺少package.jar,无法打包。

推荐下载bellsoft的全量JDK,比较好用。下载地址:https://bell-sw.com/pages/downloads/。

  1. 安装Kotlin 1.9.0 插件。Android Studio自带,如需特殊版本,则需要自行安装或更新。
创建多平台应用

KMP 官方推荐使用多平台项目创建向导进行项目创建,KMP项目创建向导

在向导页,先只选择Android 和 Desktop。点击Dowload。

打开Android Studio 后,打开已下载的KMP项目。

项目配置

首次导入项目后,gradle会同步依赖项,如同步出现错误 ,可按需修改gradle国内资源代理。在gradle/wrapper/gradle-wrapper.properties中,修改distributionUrl。

bash 复制代码
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

在settings.gradle.kts中,配置相关镜像地址。

Kotlin 复制代码
pluginManagement {
    repositories {
        maven { url = uri("https://mirrors.ustc.edu.cn/maven-central") }
        maven { url = uri("https://maven.aliyun.com/repository/google") }
        maven { url = uri("https://maven.aliyun.com/repository/public") }
        maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
        google {
            ...
        }
        mavenCentral()
        gradlePluginPortal()
        maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
        maven("https://maven.pkg.jetbrains.space/kotlin/p/wasm/experimental")
        maven( "https://androidx.dev/storage/compose-compiler/repository")
        maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev")
        maven("https://central.maven.org/maven2/") // for netty
    }
}

运行多平台应用程序

在Android设备上运行
  1. 创建一个Android虚拟机或连接Android手机,并开启开发者选项,开启USB调试并授权电脑调试(Android 14以上的设备,可以通过局域网进行调试)。

  2. 在运行配置列表中,选择composeApp。

  3. 选择 Android 虚拟机或已连接的可调式手机,然后单击运行,编译完成后,将在所选设备上运行该应用程序。

  4. 启动后显示如下:

在桌面上运行

在桌面上运行,需要手动设置运行配置或执行gradle命令。

  1. 点击Android Studio 右侧的Gradle图标

  2. 点击执行Gradle命令图标。

  3. 键入运行桌面应用程序的命令后按回车开始编译。

bash 复制代码
desktopRun -DmainClass=MainKt --quiet
  1. 编译完成后会自动运行。

如需运行其他平台,如Web、Server等,请参考创建您的多平台项目

相关推荐
玉红777几秒前
Erlang语言的数据结构
开发语言·后端·golang
guishou先生8 分钟前
手机联系人 查询 添加操作
android
Michael_Good8 分钟前
【C/C++】C语言编程规范
c语言·开发语言·c++
sunnyday042625 分钟前
Mybatis-Plus updateById 方法更新无效及空值处理
java·开发语言·mybatis
黑不溜秋的39 分钟前
C++ 并发专题 - 实现一个线程安全的队列
开发语言
VBA633744 分钟前
MF248:复制工作表形状到Word并调整多形状位置
开发语言
我又来搬代码了1 小时前
【Android】application@label 属性属性冲突报错
android
机器视觉小小测试员1 小时前
自动化测试工具Ranorex Studio(七十五)-录制ANDROID测试
android·测试工具·自动化
2301_801074151 小时前
ArkTs组件(2)
开发语言·前端·华为·harmonyos
yep吖1 小时前
Datawhale-AI冬令营二期
开发语言·javascript·ecmascript