Android 问题00_IncompatibleComposeRuntimeVersionException

Android 问题00 —— IncompatibleComposeRuntimeVersionException

问题背景

在真实项目过程中开发 SDK,需要相应的开发一个 DEMO App,一方面测试 SDK 功能,另一方面根据实际场景构建一个可用的 App,模拟现实用途。这个过程中发现 App 开发用的还是老旧的 XML 布局格式,然后使用 Activity/Fragment 形式加载(Android 刚出生时的布局/页面加载方式)。我打算引入 Compose,一种较新的 UI 构建库,目的是想组内的开发同事来逐步认识更高效的布局/页面开发方式,同时期望项目内的组员可以多关注一些 Android 的新技术。为什么引入 Compose? 在文章最后说明。这里讲引入过程中遇到的问题。

先来看项目结构,是一个简单的两个 modules 组成的 Project。

项目结构

这个 Project 中 app module 依赖于 sdk module,sdk 包含主要的业务功能。现在主要针对这个 Project 作 Compose 的引入,原始的工程只应用 Java 语言,layout 的加载方式是最老的 xml 方式。Compose 已经推出了很久,Kotlin 也是 Android 首推的开发语言,用以构建 layout,确是高效,且更加安全。

下来就是引入 Compose 的问题了。

开始情况,考虑的是只在 app 模块中引入 Compose,sdk 有 Kotlin 业务代码,没有 Compose 构建的 UI,因此一开始时就有应用 Kotlin。

// sdk module
plugins {
   
   
    id 'com.android.library'
    // ...
    id 'org.jetbrains.kotlin.android' // Kotlin
}

/// ....

具体问题

各层级的 build.gradle 文件内 kotlin/compose 相关配置如下。

在 Project 项目级 build.gradle 中配置 KGP

// Root Project
buildscript {
   
   
    repositories {
   
   
		// ...
    }

    dependencies {
   
   
        classpath libs.androidx.navigation.navigation.safe.args.gradle.plugin

        classpath libs.google.services
        classpath libs.fat.aar
		// ...
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0" // 建议与 IDE settings 中的版本一致
    }
    // ...
}

plugins {
   
   
    id 'com.android.application' version '7.4.2' apply false
    id 'com.android.library' version '7.4.2' apply false
	// ...
    id 'org.jetbrains.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚妄皆空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值