Jetpack Compose 采坑过程

〇、前言

Google 官方针对 Jetpack Compose 的 Android 开发者挑战赛今天已经公布了第四周也就是最后一周的题目,面对这一新的技术趋势大佬们个个摩拳擦掌,看的我也蠢蠢欲动,学习的过程中发现坑还是不少的,特此记录下。

一、使用Android Studio 预览版本

目前(2021-03-18)Android Studio 最新的稳定版是4.1.2,还不支持 Jetpack Compose 开发,进行 Jetpack Compose 开发需要Android studio 4.2 最新预览版本,官网下载预览版本是免安装版本,直接打开 \bin\studio64.exe 即可。

二、项目配置

新建项目同步时直接报错:

Build file 'D:\AndroidCode\AndroidStudioProjects\Demo031803\app\build.gradle' line: 2


> Failed to apply plugin 'com.android.internal.application'.
> java.util.concurrent.ExecutionException: java.lang.NoSuchMethodException: java.lang.invoke.MethodHandles.privateLookupIn(java.lang.Class, java.lang.invoke.MethodHandles$Lookup)

* Try:
Run with --scan to get full insights.

这是由于gradle版本和Java版本不对应导致的,新项目默认 Gradle 版本是 6.8.2,Gradle Plugin 版本是 7.0.0-alpha10:

与此对应,Java版本需要Java 11,修改JDK为Embedded JDK即可:

或者修改适合的Gradle及Gradle Plugin版本也可以。

三、 Jetpack Compose 预览

既然 Jetpack Compose 是声明式UI,那必须得能预览啊,不过可能会遇到这种情况:A successful build is needed before the preview can be displayed.

此时需要 重新将项目Rebuild一下(Build -> Rebuild Project),成功后就可以看到预览视图。如果仍然没有显示预览视图,则需要将AS关闭重新打开项目

 

四、API被废弃

目前 Jetpack Compose Beta 版刚刚发布,Beta 版也意味着其 API 相对稳定,在此之前的预览版的 API 都不稳定,API被废弃也是正常,所以之前的写法直接用过来报红的话也不一定是环境问题,看看API有没有被废弃。
比如:ScrollableRow、ScrollableColumn函数已在alpha11版本已被标记废弃,建议使用LazyRow、LazyColumn代替。

 

猜你喜欢

转载自blog.csdn.net/beita08/article/details/114982410