Android studio 升级到Flamingo | 2022.2.1遇到的问题

在更新后,Up-to-date for Android Gradle Plugin version 8.0.2,AGP升级到了8.0
需要我们的gradle版本升级到8.0.2
至于AGB是什么东西,暂且不提,一般的项目在更新后肯定是编译不通过的
有以下的一些原因

问题一:java编译版本和kotlin编译版本不匹配

报错信息:

Execution failed for task ‘:sdk:compileDebugKotlin’.
‘compileDebugJavaWithJavac’ task (current target is 1.8) and ‘compileDebugKotlin’ task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain

可以看到我们java使用的编译版本是1.8,但是kotlin的编译版本已经升级到17了,这也是这次更新所带来的变化。Android studio版本更新到2022.2.1会自带java17版本

如何解决?

将其保持同步即可,在gradle中修改

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = '17'
    }

这样就可以将其保持同步,另外也可以这样添加kotlin的版本

kotlin {
	jvmToolchain(8)
}

保持版本同步后,就能解决上面的报错信息了
如果没能解决,就打开setting,在里面搜索gradle,更改里面的jdk版本,改为17
在这里插入图片描述

问题二:命名空间

namespace是这次更新后新增的一个属性,主要是用于资源的访问,在此之前,Android访问资源大多是利用包名来访问资源的,现在新增这个属性后,需要指定该属性去访问资源,不然就会出现编译失败

添加资源方式如下

android {
    namespace 'com.example.opendemoapp'
    ...
    ...
    ...
    }

还需要注意的是,如果含有多个模块,需要在其单独模块中的gradle中去指定其命名空间

nonTransitiveRClass 会强制要求 Module 的资源按 namespace 来区分使用
如果不想启用,可以改为false

android.nonTransitiveRClass=false

问题三:BuildConfig设置

如果项目中有用到BuildConfig,那么更新后会发现找不到该文件了,原因是在更新后默认没有启动还文件,如果需要使用的话,需要在android中插入如下声明

    buildFeatures {
        buildConfig true
    }

如果全局都需要的话,那么在gradle.properties中添加

android.defaults.buildfeatures.buildconfig=true

在kotlin中使用,可以添加如下字段来增加编译速度

android.enableBuildConfigAsBytecode=true
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值