当前位置: 首页 > news >正文

商务网站建设ppt模板公司网站建设 目录

商务网站建设ppt模板,公司网站建设 目录,北京加盟网站建设,怎么做qq代刷网站由于想要验证Compose最新的debug特性#xff0c;而我目前使用的版本#xff08;Dolphin 小海豚#xff09;不支持#xff0c;查看官网说明需要最新版本#xff0c;所以不得已进行了一下Android Studio版本升级#xff0c;过程中遇到一些问题#xff0c;本文仅做记录。而我目前使用的版本Dolphin 小海豚不支持查看官网说明需要最新版本所以不得已进行了一下Android Studio版本升级过程中遇到一些问题本文仅做记录。真是不想升级一升级就是连锁反应需要处理的东西太多了折腾很久。。 目前去官网下载最新的稳定版本是 Android Studio Flamingo | 2022.2.1 代号Flamingo中文名火烈鸟。 发布日志请查看这里https://developer.android.com/studio/releases Android Studio、AGP、Gradle、JDK 版本设置 Android Studio 和 对应插件之间的对应关系 Flamingo需要的AGP版本是8.0。 注意这里的8.0就对应了工程根目录下build.gradle中的com.android.application和com.android.library两个插件的版本号 这里以前旧版本中的写法是 dependencies { classpath(com.android.tools.build:gradle:7.3.1) } 现在官方全部采用 plugins {id xxx} 的写法了。 Android 插件 和 对应最低Gradle版本要求之间的对应关系 注意这里的Gradle版本就对应gradle/wrapper/gradle-wrapper.properties中的版本 这个包比较大如果你的网比较好就让AS帮你下否则可以先到网上搜索一下自行下载好对应的zip包然后放在C:\Users\用户名\.gradle\wrapper\dists 目录下Windows用户苹果同理。这里可以先打开一下AS然后看到AS显示正在下载gradle-8.0的提示就马上关闭。AS会在这个目录下生成缓存目录然后你可以对照该目录下以前下载过的gradle版本看它怎么放你就怎么放。再重新打开AS它就会自动加载了这是离线设置gradle包的方法。 使用 AGP 8.0 还有一些其他配置要求 这里最关键的一点是对JDK版本的要求最低是 JDK 17默认下载的Android Studio Flamingo 会打包自带 JDK 17 并且会自动配置不需要自己另外下载和配置。但是一般情况下你升级完肯定是有旧项目要使用新升级的AS打开的这时旧项目中的JDK相关的配置仍然需要手动修改主要修改如下部分内容 android {...compileOptions {sourceCompatibility JavaVersion.VERSION_17targetCompatibility JavaVersion.VERSION_17}kotlinOptions {jvmTarget 17...} } ...如果项目中有很多module都有这个配置则需要全部修改注意JDK 17是硬性要求必须要修改。 如果不打算使用Flamingo自带的 JDK 17 那么需要自己电脑中独立安装JDK 17配置好环境变量后在AS中右键Open Module Settings或选择File-Project Structure按照下图配置 以上版本对应关系均可以在这里找到https://developer.android.com/build/releases/gradle-plugin Compose 相关版本设置 接下来就是 Compose Compiler 和 对应兼容的 Kotlin 版本之间的对应关系 我这里选择的是1.4.3因为我后面 Compose UI 的版本选的是1.4.3我想保持一致当然你可以选择更高的。 但是需要注意的是这里我们需要根据Compose编译器的版本去选择对应的Kotlin版本因为其实是这样的我们需要指定的Compose编译器版本才能去编译指定的Compose UI 版本而指定的Compose编译器版本需要兼容指定的Kotlin版本所以其实是要先看你的Compose UI 是用的什么版本。但是总的来说高版本的Compose编译器肯定是能编译低版本的Compose UI的。 以上对应关系可以在这里找到https://developer.android.com/jetpack/androidx/releases/compose-kotlin 接下来就是 Compose UI 版本的选择 这个就比较简单了目前 Compose UI 的稳定版本是1.4.3所以前面 Compose Compiler 我选择的也是1.4.3官方的配置是使用 Compose Compiler 1.4.7 Compose UI 1.4.3当然你可以选择按照官方的这种配置方案。 以上版本可以在这里找到https://developer.android.com/jetpack/androidx/releases/compose-ui 然后我们可以在项目根目录下的build.gradle中统一配置一下 在app module模块中引用 至于其他compose库的选择可以参考这里或者点击这里进行搜索它们其实跟AS没有什么太大依赖关系了。 其他一些插件的版本设置 KSP插件版本 由于工程中有一些ksp的demo代码所以需要更新KSP插件的版本根据前面选择的kotlin版本到这个地方找对应的版本即可https://github.com/google/ksp/releases由于前面选择的kotlin版本是1.8.10所以这里选择使用1.8.10-1.0.9的版本 protobuf插件版本 这个开始我没更新但是同步gradle后报错更新后正常。最新版本可以在这里获取https://github.com/google/protobuf-gradle-plugin/releases目前最新版本是v0.9.3 注意如果你项目中有使用protobuf且版本是 ≤ 0.9.1 的版本请跳过 0.9.2直接升级到 0.9.3因为 0.9.2版本有个bug使用会编译报错官方在0.9.3版本中修复了。别问我怎么知道的 app module的build.gradle中也需要参考官方配置如果报错的话https://github.com/google/protobuf-gradle-plugin目前我的配置如下运行正常没有报错 // DataStore-protobuf protobuf {protoc {artifact com.google.protobuf:protoc:3.21.12}// Generates the java Protobuf-lite code for the Protobufs in this project. See// https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation// for more information.generateProtoTasks {all().configureEach { task -task.builtins {java {option lite}kotlin {}}}} }配置阿里云镜像 如果没有条件“科学上网”可能下载一些库会比较慢此时可以配置一下配置阿里云镜像解除封印速度会快很多主要是以下几个地址 maven { url https://maven.aliyun.com/repository/central } maven { url https://maven.aliyun.com/repository/public } maven { url https://maven.aliyun.com/repository/jcenter } maven { url https://maven.aliyun.com/repository/google } maven { url https://maven.aliyun.com/repository/releases } maven { url https://maven.aliyun.com/repository/snapshots } maven { url https://maven.aliyun.com/repository/gradle-plugin }修改settings.gradle中pluginManagement和dependencyResolutionManagement中的repositories内容为以上地址即可 注意以上地址如有变化访问不通可以参考这里获取最新地址https://developer.aliyun.com/mvn/guide 如果 Compose compiler 和 kotlin 版本之间出现兼容问题可能需要在dependencyResolutionManagement的repositories中添加如下地址 maven {// For kotlin Compose Compiler 有对应的兼容 kotlin版本// check: https://github.com/jimgoog/ComposeAppUsingPrereleaseComposeCompiler#project-configurationurl https://androidx.dev/storage/compose-compiler/repository/}这是因为前面提到过的Compose Compiler 有对应的兼容 kotlin版本不能乱用如果出现兼容问题可以参考这个地址解决。 接下终于就可以同步gradle了。。。 不出意外同步完果然报错了。。首先发现的错误是代码中不能访问BuildConfig类了看来还是有需要调整兼容的地方要修改。。 重大更改构建选项默认值变更 这部分是官网列出来的在 AGP 8.0 以上以下构建选项的默认值与之前有所不同 上表中前3个值是与应用代码比较相关的这三个以前默认是开启的使用 AGP 8.0 以后需要用户手动开启否则默认是关闭的。尤其是第一个也就是说现在默认不会生成BuildConfig这个类了哪个模块需要就在哪个模块中自行开启因此需要在app module的build.gradle中做如下修改 android {...buildFeatures {compose true // Enable BuildConfig only for modules that need it. AGP 8.0 开始需要手动开启buildConfig true// 以下需要的话同样需要手动开启// aidl true// renderScript true} } ...这样就能在代码中访问到BuildConfig类了。 上表中后3个值中我们需要关注的是关于R类的生成在默认情况下对于库模块是不可传递的这意味着每个R类只包含库模块本身声明的资源而不是来自其依赖项的资源。 gradle.properties文件中的nonTransitiveRClass标志控制R类的行为。从 AGP 8.0 开始它在未指定时默认值为 true不传递。并且在引用资源时必须使用 完全限定的命名空间 调用。 R类是将资源名称映射到代码中的 ID 的生成类。在 Android Studio Bumblebee / AGP 7.1 之前R类是可传递的。这意味着构建不仅仅是为该库生成R类而是为该库所依赖的所有模块生成资源 ID。这一行为将导致体积更大的apk文件和更长的构建时间。 在非传递行为中每个库模块R类仅包含模块本身声明的资源从而减少了该模块R类的大小。 相比以前减少体积加快构建速度且不会出现同名R类资源覆盖问题因为指定包名调用。 提到R类这里还有一个与R类相关的配置需要注意一下虽然不是从AGP 8.0开始要求的但是新版本中仍然是需要的在gradle中指定namespace属性作为资源命名空间以替代AndroidManifest.xml中的package属性。在以前AndroidManifest.xml中的package同时承担了applicationId和资源命名空间的角色后来gradle中专门提供了一个applicationId用作应用标识现在直接使用两个专门的属性applicationId和namespace分别表示应用标识和资源命名空间更加明确了。 现在可以将package属性从AndroidManifest.xml删除了 如果你使用 Android Studio Flamingo 运行 flutter 项目可能会遇到与namespace相关的问题例如 这个有可能是Flutter插件所使用的AGP与AGP 8.0 冲突导致的已经有人在github上提出了这个已知问题[add-to-app] error : Namespace not specified. Please specify a namespace in the module’s build.gradle 另外从 AGP 8.0 开始以下选项值默认值不能修改它们默认被强制设置为true即便你在gradle.properties文件中声明也会被忽略。 看了一眼这个表中的标志我基本上从来没用过所以直接跳过。 接下终于可以继续同步gradle了。。。 不出意外同步完果然又双叒报错了。。 不过这次是一些Compose的代码报错查看了一下基本上是一些api的变动比如之前使用某个API需要添加实验性API的注解现在注解报错提示不存在了说明该API转正了那么直接将报错的注解删除即可。 如果是某个api方法不存在了、或方法参数改变了这时需要查找对应的新版本的解决方法不过好在 Compose UI虽然更新快但是有更新日志https://developer.android.com/jetpack/androidx/releases/compose-ui 比如下面这个报错了不知道怎么正确实现可以复制它然后到上面的Compose UI Release Notes地址页面CtrlF搜索 可以看到modifierElementOf这个api确实被删除了替代方案是使用继承ModifierNodeElement类的方式在AS找到ModifierNodeElement类源码 复制ModifierNodeElementSample然后到 https://cs.android.com/ 中搜索 可以看到这里就能找到关于该类如何使用的官方的示例代码。其他报错Api可以参考这个方式查找如果实在找不到只能Google搜索一下了。 修复完相关代码报错后继续运行。。。 这次报了一个aar库找不到的错误 这个错误非常奇怪而且不是总是出现它说在这个地址https://maven.aliyun.com/repository/central/com/github/skydoves/landscapist/2.1.1/landscapist-2.1.1.aar 中 Could not find landscapist-2.1.1.aar但实际上是可以访问到的甚至能直接点击链接下载下来。不知道为什么可能阿里云同步的文件有问题无奈我只能把settings.gradle中dependencyResolutionManagement的repositories里将mavenCentral()加了回去 dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {mavenCentral() // 不加这个提示阿里云的地址找不到landscapist-2.1.1.aar // 阿里云镜像maven { url https://maven.aliyun.com/repository/central }maven { url https://maven.aliyun.com/repository/public }maven { url https://maven.aliyun.com/repository/jcenter }maven { url https://maven.aliyun.com/repository/google }maven { url https://maven.aliyun.com/repository/releases }maven { url https://maven.aliyun.com/repository/snapshots }maven { url https://maven.aliyun.com/repository/gradle-plugin }} }但是加了mavenCentral()有可能国内的网访问很慢或者下载不到这个aar有可能需要科学上网。 加这个之后就运行成功了。。真的不容易。。 新的 settings 插件 尝试未果 AGP 8.0.0-alpha09 引入了新的settings设置插件。设置插件可让您将全局配置适用于所有模块的配置集中在一个地方这样您就无需在多个模块中复制和粘贴配置。此外您可以使用设置插件来创建工具 执行配置文件或关于如何运行工具的不同说明并在它们之间切换。官方终于知道要搞一个这个了真是后知后觉民间不知道搞了多少年了。。 注意设置插件目前只能在 Groovy 中使用。 要使用设置插件请在settings.gradle文件中应用该插件 apply plugin com.android.settings集中全局配置 要配置Global全局配置请使用settings.gradle文件中的 android {} 新块。这是一个例子 android {compileSdk 31minSdk 28... }但以上配置我尝试未能成功在settings.gradle中添加apply plugin com.android.settings报错不被识别原因未知如果有尝试成功的请留言告知。 Flavor 相关的其他配置 可以参考https://developer.android.com/build/build-variants 最后再吐槽一下Android官方也没有一个Android Studio升级的指南清单每次都是自己遇到问题一个一个的现查现卖每次升级都是大型车祸现场简直不要太惨了。。
http://www.hkea.cn/news/14299582/

相关文章:

  • 新的房地产网站怎么做SEO怎么用cms做网站
  • 电池外贸一般在哪些网站做网站最新一次改版时间什么意思
  • 网站建设做得好的公司北京网站设计师培训
  • 唐山免费网站制作电子商务网站开发技术支持
  • 自己怎做网站asp添加网站管理员
  • 东宁网站制作做网站一般费用多少
  • 西宁网站维护接网站建设的单子
  • 自助建网站怎么样推广自己的产品
  • 学生如何自己做网站百度收录的网站标题 --
  • 网站高防空间东莞网站设计开发技能大赛
  • 重庆营销网站建设高唐网站
  • 国外服务器做网站不能访问深圳网络营销和推广方案
  • 益阳市城乡和住房建设部网站微网站第三方平台
  • 带数据库的网站做免费注册个人邮箱申请
  • 红酒营销 网站建设百度运营优化师
  • 网站建设业务方法织梦模板大全
  • 为什么检测行业不能用网站做wordpress社群模板
  • 互联网媒体广告公司seo网站建站公司的主页
  • 沈阳城市建设管理学校网站网站建设说明书
  • 优秀个人网站设计欣赏教育机构网站模板
  • 山东城建建设职业学院教务网站河北建设银行石家庄分行招聘网站
  • 徐州网站建设石材石料网站搭建教程
  • app应用网站单页模板门户网站建设的重要性
  • 山东省南水北调建设管理局网站陕西四通建设工程有限责任公司网站
  • 建设企业网站的流程固始县住房和城乡建设局网站
  • 网站建设和网页制作张家界网站
  • 网络网站推广二月网站建设南宁
  • 做信息流推广需要建立网站么西部数码网站管理助手4.0 破解版
  • 手机网站设计案标签管理wordpress
  • 建网站教程海外医疗网站建设