一个月前创建的一个kotlin activity项目,当时使用的kotlin版本是1.5×,后来在当前项目下创建了一个compose模块,建完后手贱更新了kotlin版本(1.6.10)。
运行compose activity的时候就报这个错误:
execution failed for task ':composetutorial1:compiledebugkotlin'
简言之就是kotlin版本和compose版本不兼容的问题,要么改项目的compose版本,要么改kotlin版本。在网上找了很多经验没解决,查官方文件找到了兼容的compose版本
如需详细了解与 Kotlin 预发布版本兼容的 Compose Compiler 版本,请参考 https://androidx.dev/storage/compose-compiler/repository。
| Compose Compiler 版本 | 兼容的 Kotlin 版本 |
|---|---|
| 1.3.2 | 1.7.20 |
| 1.3.1 | 1.7.10 |
| 1.3.0 | 1.7.10 |
| 1.3.0-rc02 | 1.7.10 |
| 1.3.0-rc01 | 1.7.10 |
| 1.3.0-beta01 | 1.7.10 |
| 1.2.0 | 1.7.0 |
| 1.2.0-rc02 | 1.6.21 |
| 1.2.0-rc01 | 1.6.21 |
| 1.2.0-beta03 | 1.6.21 |
| 1.2.0-beta02 | 1.6.21 |
| 1.2.0-beta01 | 1.6.21 |
| 1.2.0-alpha08 | 1.6.20 |
| 1.2.0-alpha07 | 1.6.10 |
| 1.2.0-alpha06 | 1.6.10 |
| 1.2.0-alpha05 | 1.6.10 |
| 1.2.0-alpha04 | 1.6.10 |
| 1.2.0-alpha03 | 1.6.10 |
| 1.2.0-alpha02 | 1.6.10 |
| 1.2.0-alpha01 | 1.6.10 |
| 1.1.1 | 1.6.10 |
| 1.1.0 | 1.6.10 |
| 1.1.0-rc03 | 1.6.10 |
| 1.1.0-rc02 | 1.6.10 |
| 1.1.0-rc01 | 1.6.0 |
| 1.1.0-beta04 | 1.6.0 |
| 1.1.0-beta03 | 1.5.31 |
| 1.1.0-beta02 | 1.5.31 |
| 1.1.0-beta01 | 1.5.31 |
| 1.1.0-alpha06 | 1.5.31 |
| 1.1.0-alpha05 | 1.5.31 |
| 1.0.5 | 1.5.31 |
| 1.0.4 | 1.5.31 |
| 1.1.0-alpha04 | 1.5.30 |
| 1.1.0-alpha03 | 1.5.30 |
| 1.0.3 | 1.5.30 |
| 1.1.0-alpha02 | 1.5.21 |
| 1.1.0-alpha01 | 1.5.21 |
| 1.0.2 | 1.5.21 |
| 1.0.1 | 1.5.21 |
| 1.0.0 | 1.5.10 |
| 1.0.0-rc02 | 1.5.10 |
| 1.0.0-rc01 | 1.5.10 |
打开项目的配置文件build.gradle
buildscript {
ext {
compose_version = '1.0.2'//这是我报错时的
}
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}
compose_version对应compose版本
org.jetbrains.kotlin.android' version '1.6.10'对应kotlin版本
我当前kotlin版本是1.6.10,但是compose版本却是1.0.2,所以不兼容就报错了
选择更改compose版本使其兼容kotlin版本
则kotlin1.6.10兼容的compose是1.1.0-rc01~1.2.0-alpha07共11个版本,我选择了1.2.0-alpha07
更改后的build.gradle
buildscript {
ext {
compose_version = '1.2.0-alpha07'//更改后
}
}// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}
运行成功

参考文献:
https://developer.android.google.cn/jetpack/androidx/releases/compose-kotlin?hl=zh-cn#kts
我在Rails应用程序中使用CarrierWave/Fog将视频上传到AmazonS3。有没有办法判断上传的进度,让我可以显示上传进度如何? 最佳答案 CarrierWave和Fog本身没有这种功能;你需要一个前端uploader来显示进度。当我不得不解决这个问题时,我使用了jQueryfileupload因为我的堆栈中已经有jQuery。甚至还有apostonCarrierWaveintegration因此您只需按照那里的说明操作即可获得适用于您的应用的进度条。 关于ruby-on-r
相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声
首先回顾一下拉格朗日定理的内容:函数f(x)是在闭区间[a,b]上连续、开区间(a,b)上可导的函数,那么至少存在一个,使得:通过这个表达式我们可以知道,f(x)是函数的主体,a和b可以看作是主体函数f(x)中所取的两个值。那么可以有, 也就意味着我们可以用来替换 这种替换可以用在求某些多项式差的极限中。方法: 外层函数f(x)是一致的,并且h(x)和g(x)是等价无穷小。此时,利用拉格朗日定理,将原式替换为 ,再进行求解,往往会省去复合函数求极限的很多麻烦。使用要注意:1.要先找到主体函数f(x),即外层函数必须相同。2.f(x)找到后,复合部分是等价无穷小。3.要满足作差的形式。如果是加
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
我想从then子句中访问case语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案
原始问题Letd(n)bedefinedasthesumofproperdivisorsofn(numberslessthannwhichdivideevenlyinton).Ifd(a)=bandd(b)=a,whereab,thenaandbareanamicablepairandeachofaandbarecalledamicablenumbers.Forexample,theproperdivisorsof220are1,2,4,5,10,11,20,22,44,55and110;therefored(220)=284.Theproperdivisorsof284are1,2,
如果我想使用“create”构建策略创建和实例,然后想使用“attributes_for”构建策略进行验证,是否可以这样做?如果我在工厂中使用序列?在Machinistgem中有可能吗? 最佳答案 不太确定我是否完全理解。而且我不是机械师的用户。但听起来您只是想做这样的事情。@attributes=FactoryGirl.attributes_for(:my_object)my_object=MyObject.create(@attributes)my_object.some_property.should==@attributes
这个问题在这里已经有了答案:WhydoRubysettersneed"self."qualificationwithintheclass?(3个答案)关闭29天前。给定这段代码:classSomethingattr_accessor:my_variabledefinitialize@my_variable=0enddeffoomy_variable=my_variable+3endends=Something.news.foo我收到这个错误:test.rb:9:in`foo':undefinedmethod`+'fornil:NilClass(NoMethodError)fromtes
电脑启动出现显示器黑屏是一个相当常见的问题。如果您遇到了这个问题,不要惊慌,因为它有很多可能的原因,可以采取一些简单的措施来解决它。在本文中,小编将介绍下面4种常见的电脑启动后显示器黑屏的原因,排查这些原因,快速解决! 演示机型:联想Ideapad700-15ISK-ISE系统版本:Windows10一、显示器问题如果出现电脑启动后显示器黑屏的情况。那么首先您需要检查一下显示器是否正常工作。您可以通过更换另一个显示器或将当前显示器连接到另一台计算机来检查显示器是否存在问题。如果问题仍然存在,那么您可以排除显示器故障的可能性。 二、显卡问题如果您的电脑配备了独立显卡,那么显卡故障也可能是导致电脑
目录一.大致如下常见问题:(1)找不到程序所依赖的Qt库version`Qt_5'notfound(requiredby(2)CouldnotLoadtheQtplatformplugin"xcb"in""eventhoughitwasfound(3)打包到在不同的linux系统下,或者打包到高版本的相同系统下,运行程序时,直接提示段错误即segmentationfault,或者Illegalinstruction(coredumped)非法指令(4)ldd应用程序或者库,查看运行所依赖的库时,直接报段错误二.问题逐个分析,得出解决方法:(1)找不到程序所依赖的Qt库version`Qt_5'