Android Compose 升級 1.2.1 記錄

之前一直使用 Compose 1.1.1 版本媒殉,升級至 1.2.1 后就開始報錯了皂岔。

1)compose.compiler 找不到 1.2.1 版本

Compose 版本和 Kotlin 版本是對應的峻黍,具體的版本對應可參考 Compose-Kotlin compatibility map

Compose 1.2.0 之后流昏,compose 和 kotlin 版本不再是強依賴關(guān)系了精盅,具體可以閱讀:https://android-developers.googleblog.com/2022/06/independent-versioning-of-Jetpack-Compose-libraries.html

Starting today, the various Jetpack Compose libraries will move to independent versioning schemes. This creates the possibility for sub-groups such as androidx.compose.compiler or androidx.compose.animation to follow their own release cycles.
Allowing these libraries to be versioned independently will decouple dependencies which were previously implicitly coupled, thereby making it easier to incrementally upgrade your application and therefore stay up-to-date with the latest Compose features.
...
Compose and Kotlin are highly coupled, and we’ve heard your feedback that Compose compiler updates are needed to allow you to upgrade your Kotlin version. We want to make sure that you can use the latest and greatest features (and bug fixes) from both Compose and Kotlin, which is why we plan to release stable versions of the Compose Compiler on a much more regular basis. This means the Compose Compiler version numbers will progress at a faster pace than most other Compose libraries. Since the Compose Compiler is both forwards and backwards compatible, you will be able to upgrade it as soon as a new version is released.

大意是說宏胯,各 Compose 庫將轉(zhuǎn)為獨立的版本管理方案,允許 Compose 庫獨立發(fā)版肢专,使你的 App 更容易增量升級舞肆,保持與最新的 Compose 功能同步。第一個獨立版本管理的庫是 Compose Compiler博杖,由于這個庫是向前和向后兼容的椿胯,一旦有新的版本發(fā)布,你就可以立即升級剃根。Compose Compiler 和 Kotlin 版本是強依賴關(guān)系哩盲。

這就清楚了,Compose Compiler 已經(jīng)是獨立版本管理,需要單獨選擇版本廉油,其最新版本為 1.3.0 :https://developer.android.com/jetpack/androidx/releases/compose-compiler

compose-compiler-release.png

compose-compiler-kotlin.png

修改 build.gradle:

// project build.gradle
ext {
    ...
    kotlin_version = '1.7.10'
    compose_version = '1.2.1'
    compose_compiler_version = '1.3.0'
}

// app build.gradle
composeOptions {
    kotlinCompilerExtensionVersion compose_compiler_version
}


2)AbstractMethodError

改完 build.gradle 開開心心 run 一把惠险,結(jié)果發(fā)現(xiàn)新錯誤:

java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"

這個是已知錯誤,在低版本 Android 上出現(xiàn)抒线,參考:https://developer.android.com/jetpack/androidx/releases/compose-runtime

compose-AbstractMethodError.png

解決起來也簡單班巩,只需要把 minSdkVersion 升級到 24+ 就可以了,?? 那豈不是最低支持 Android 7.0 ……

只能換姿勢了嘶炭,不能使用 DefaultLifecycleObserver抱慌,我還可以使用 LifecycleEventObserver 嘛:

class XxxLifeCycleObserver : LifecycleEventObserver {

    override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
        when (event) {
            Lifecycle.Event.ON_RESUME -> {
                // sth todo
            }
            Lifecycle.Event.ON_PAUSE -> {
                // sth todo
            }
            Lifecycle.Event.ON_DESTROY -> {
                // sth todo
            }
            else -> {}
        }
    }

}


3)總結(jié)

Compose 版本升級結(jié)束,建議大家也升級到新版本眨猎。animation抑进,foundation,runtime 和 ui 等幾個庫的官方描述是 Important changes since 1.1.0睡陪,詳細信息請閱讀:https://developer.android.com/jetpack/androidx/releases/compose

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寺渗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宝穗,更是在濱河造成了極大的恐慌户秤,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逮矛,死亡現(xiàn)場離奇詭異鸡号,居然都是意外死亡,警方通過查閱死者的電腦和手機须鼎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門鲸伴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晋控,你說我怎么就攤上這事汞窗。” “怎么了赡译?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵仲吏,是天一觀的道長。 經(jīng)常有香客問我蝌焚,道長裹唆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任只洒,我火速辦了婚禮许帐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘毕谴。我一直安慰自己成畦,他們只是感情好距芬,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著循帐,像睡著了一般框仔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拄养,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天存和,我揣著相機與錄音,去河邊找鬼衷旅。 笑死,一個胖子當著我的面吹牛纵朋,可吹牛的內(nèi)容都是我干的柿顶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼操软,長吁一口氣:“原來是場噩夢啊……” “哼嘁锯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聂薪,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤家乘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后藏澳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仁锯,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年翔悠,在試婚紗的時候發(fā)現(xiàn)自己被綠了业崖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡蓄愁,死狀恐怖双炕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撮抓,我是刑警寧澤妇斤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站丹拯,受9級特大地震影響站超,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咽笼,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一顷编、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剑刑,春花似錦媳纬、人聲如沸双肤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茅糜。三九已至,卻和暖如春素挽,著一層夾襖步出監(jiān)牢的瞬間蔑赘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工预明, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留缩赛,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓撰糠,卻偏偏與公主長得像酥馍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子阅酪,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容