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

黄岛网站建设北京做网站公司哪家好

黄岛网站建设,北京做网站公司哪家好,wordpress parkcollege,wordpress企业汉化主题Android Studio新版本的一个资源id无法找到的bug解决 文章目录 Android Studio新版本的一个资源id无法找到的bug解决一、前言二、Android Studio的无法获取到资源id的bug1、一段简单的Java代码1、错误现象2、错误解决方法 三、其他1、小结2、gradle.properties文件 其他相关属性…

Android Studio新版本的一个资源id无法找到的bug解决

文章目录

  • Android Studio新版本的一个资源id无法找到的bug解决
    • 一、前言
    • 二、Android Studio的无法获取到资源id的bug
      • 1、一段简单的Java代码
      • 1、错误现象
      • 2、错误解决方法
    • 三、其他
      • 1、小结
      • 2、gradle.properties文件 其他相关属性
      • 3、Android13系统签名应用代码在旧Gradle无法编译的小bug

一、前言

Android Studio 导入以前的项目发现资源文件明明有id声明了,但是无法Java代码中无法识别的问题。

比如switch 的case R.id.textView: 会编译报错,这个textView 已经在res的布局文件中有声明了。

后面验证对比了一下,发现是Android Studio Gradle版本的一个bug:

gradle 6.5 没有这个问题
gradle 8.7 就有这个问题

新下载的Android Studio默认都是使用的最新的gradle版本8.7,当然也能兼容旧版本的gradle。

这是一个小问题,在配置文件中多配置一个属性“android.nonFinalResIds”就行了。

下面简单记录一下。

二、Android Studio的无法获取到资源id的bug

1、一段简单的Java代码

    //首先layout的一个TextView已经声明了textView的idprivate void test(View view) {if (v.getId() == R.id.textView) { //这里不会编译报错return;}switch (view.getId()) {case R.id.textView: //这行会编译报错!break;default:break;}}

把上面这段代码加载新版本的Android Studio项目的任意一个类中直接编译是会报错的。

1、错误现象

在这里插入图片描述

上面可以看到报错信息是:
Constant expression required (需要常量表达)
简单的理解就是,gradle 编译环境认为 R.id.textView 不是一个数值。
这个算是Android Studio 新版本的有个误判吧。

网上也有人是这样说的:

Android Studio 中使用switch语句时报错Constant expression required:
在Android Studio中使用JDK17以上版本,会出现switch语句报错:
"Constant expression required"的问题,
这是因为在JDK17中switch语句的条件表达式支持使用枚举类型,而这个特性还没有被支持。

但是我用gradle 8.7搭配JDK8 也是有问题的,说明还是和Android Studio的编译环境有关。

2、错误解决方法

通过网上搜索还是能发现了解决方法如下:

在这里插入图片描述

在 gradle.properties 文件添加一个ResIds跳过检测的属性。

Demo\gradle.properties

org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
android.useAndroidX=true
android.nonTransitiveRClass=true
android.nonFinalResIds=false //id 找不到文件解决!

上面三个配置属性是默认就有的,第四个需要自己添加进去;

如果还有其他需求属性也是可以自己添加进入比如.kt代码,要加对应的支持属性,才能编译。

三、其他

1、小结

如果是新版本Android Studio 遇到 switch语句时报错Constant expression required,
可以在gradle.properties文件添加android.nonFinalResIds=false 试试,
看看是否能解决这个编译报错问题。

2、gradle.properties文件 其他相关属性

下面这些属性大部分没啥用,有兴趣的可以看看。

(1)构建环境配置属性
org.gradle.jvmargs:用于指定 Gradle 守护进程的 JVM参数,对于调整内存设置特别有用。例如org.gradle.jvmargs=-Xmx1536m,表示将 Gradle守护进程的最大堆内存设置为 1536MB,可根据项目的复杂程度和系统资源情况适当调整此值,以优化构建性能.
org.gradle.parallel:当设置为true时,Gradle会在多模块项目中以并行模式运行,能够显著提高构建速度,但该选项只适用于解耦的项目,即各个模块之间的依赖关系相对简单的情况。org.gradle.caching:设置为true时,Gradle会缓存构建过程中的输出结果,当下次执行相同的构建任务时,如果输入没有变化,Gradle 会直接使用缓存的结果,从而大大提高构建速度,尤其适用于频繁进行构建操作的项目,如在持续集成环境中.(2)Android 项目配置属性COMPILE_SDK_VERSION、MIN_SDK_VERSION、TARGET_SDK_VERSION:分别用于指定项目的编译 SDK 版本、最低支持的 SDK 版本和目标 SDK 版本。在多开发者协作或项目需要兼容不同设备的场景下,将这些版本号统一配置在gradle.properties文件中,可以确保所有开发者使用相同的SDK版本进行开发,避免因版本不一致导致的构建问题.android.useAndroidX:如果设置为true,表示在项目中使用 AndroidX 库。android.enableJetifier:当android.useAndroidX为true时,若项目中依赖了使用旧版 Android Support Library的第三方库,设置android.enableJetifier=true可以让 Gradle自动将这些库转换为使用 AndroidX,方便项目的集成和升级.提高旧项目的兼容性。
android.nonTransitiveRClass:当设置android.nonTransitiveRClass=true时,R类的引用将不再具有传递性。在默认情况下(android.nonTransitiveRClass=false),如果一个库项目(例如,Android Library)暴露了它的R类,那么使用这个库的其他项目(主项目或者其他依赖此库的二级库)可以访问这个库中的所有资源引用,包括它所依赖的其他库的资源引用。android.nonFinalResIds:设置为false可以规避gradle高版本编译报错:Constant expression required的问题(3)依赖管理属性versions.properties引用:可以在gradle.properties文件中定义依赖库的版本号,然后在build.gradle文件中通过变量引用这些版本号。这样,当需要更新依赖库版本时,只需要在gradle.properties文件中修改相应的版本号,而无需在多个build.gradle文件中逐个查找和修改,提高了依赖管理的效率和可维护性。例如:appcompat_version=1.4.0,然后在build.gradle中使用implementation "com.android.support:appcompat-v7:$appcompat_version".
mavenCentral()配置:如果项目需要从 Maven Central仓库获取依赖库,可以在gradle.properties文件中配置 Maven Central仓库的地址,确保项目能够正确地下载和使用所需的依赖。例如:repositories { mavenCentral() },不过通常情况下,Android Studio 默认会配置 Maven Central 仓库,但在某些特殊情况下,如需要使用特定的镜像仓库或添加其他私有仓库时,就可以在此文件中进行配置。(4)代码风格与编译选项属性kotlin.code.style:用于设置 Kotlin 的代码风格,可设置为official等,以确保项目中的 Kotlin代码遵循统一的风格规范,提高代码的可读性和可维护性.kapt.verbose:设置为true时,会启用 Kapt 的详细日志输出,显示有关 Kapt 注解处理的警告和详细信息,有助于在开发过程中排查与 Kapt 相关的问题,特别是在使用 Kotlin 的注解处理器时,方便查看注解的处理过程和结果.kapt.incremental.apt和kapt.use.worker.api:这两个属性一起使用可以启用 Kapt 的增量注解处理功能,并使用多线程并行编译注解,能够显著提高 Kotlin 项目的编译速度,减少编译时间.

3、Android13系统签名应用代码在旧Gradle无法编译的小bug

如果是要用Android Studio编译Android13 或者更新版本的系统签名应用,
需要使用新版本的gradle8.7 ,之前使用gradle6.5 怎么搞都不行;
网上很多人说是更新JDK,我试了也不行,后面更新Android Studio 也不行;
因为旧项目默认使用的是gradle6.5 进行编译的,后面使用gradle8.7 就可以了。
当时情况是使用Android13 系统签名文件放到项目中编译会失败;
使用Android11的系统签名文件放到项目中编译是OK的;

具体情况也可能有不同,
这里只简单说明一下Android13 版本签名文件在Android Studio 旧Gradle无法编译的情况。


文章转载自:
http://dinncohrip.ydfr.cn
http://dinncotampere.ydfr.cn
http://dinncobondsman.ydfr.cn
http://dinncopenitentially.ydfr.cn
http://dinncomanna.ydfr.cn
http://dinncoaecidiospore.ydfr.cn
http://dinncosnobbishness.ydfr.cn
http://dinncobiennium.ydfr.cn
http://dinncokeck.ydfr.cn
http://dinncofujian.ydfr.cn
http://dinncouproarious.ydfr.cn
http://dinncojigsaw.ydfr.cn
http://dinncopatisserie.ydfr.cn
http://dinncophoneticist.ydfr.cn
http://dinncolibido.ydfr.cn
http://dinncoreverently.ydfr.cn
http://dinncowoodrow.ydfr.cn
http://dinncosalami.ydfr.cn
http://dinncobootload.ydfr.cn
http://dinncoisocratic.ydfr.cn
http://dinncocalender.ydfr.cn
http://dinncomemberless.ydfr.cn
http://dinncoapplicability.ydfr.cn
http://dinncoourn.ydfr.cn
http://dinncocrave.ydfr.cn
http://dinncoipts.ydfr.cn
http://dinncohausen.ydfr.cn
http://dinncoamic.ydfr.cn
http://dinncociminite.ydfr.cn
http://dinncotaurus.ydfr.cn
http://dinncoberlin.ydfr.cn
http://dinncoratlin.ydfr.cn
http://dinncotomtit.ydfr.cn
http://dinncoillustrational.ydfr.cn
http://dinncohymnary.ydfr.cn
http://dinncobard.ydfr.cn
http://dinncopatience.ydfr.cn
http://dinncoremind.ydfr.cn
http://dinncoenflurane.ydfr.cn
http://dinncofrowzy.ydfr.cn
http://dinncoavalanchine.ydfr.cn
http://dinncomidge.ydfr.cn
http://dinncodolmus.ydfr.cn
http://dinncowearability.ydfr.cn
http://dinncothermodynamics.ydfr.cn
http://dinncounwomanly.ydfr.cn
http://dinncolexigraphic.ydfr.cn
http://dinncohousemother.ydfr.cn
http://dinncorho.ydfr.cn
http://dinncoinfantility.ydfr.cn
http://dinncotipcat.ydfr.cn
http://dinncopresumable.ydfr.cn
http://dinncocanine.ydfr.cn
http://dinncodeadline.ydfr.cn
http://dinncosarong.ydfr.cn
http://dinncoequiprobability.ydfr.cn
http://dinncocameo.ydfr.cn
http://dinncoforeroom.ydfr.cn
http://dinncoflooey.ydfr.cn
http://dinncomho.ydfr.cn
http://dinncopinprick.ydfr.cn
http://dinncoaddicted.ydfr.cn
http://dinncoangora.ydfr.cn
http://dinnconarky.ydfr.cn
http://dinncohypercholia.ydfr.cn
http://dinncoquadrivium.ydfr.cn
http://dinncopodzolization.ydfr.cn
http://dinncohumilis.ydfr.cn
http://dinncostraucht.ydfr.cn
http://dinncocollectively.ydfr.cn
http://dinncophotoconductive.ydfr.cn
http://dinncopremonitor.ydfr.cn
http://dinncothoroughgoing.ydfr.cn
http://dinncolaypeople.ydfr.cn
http://dinncoquadrumvir.ydfr.cn
http://dinncotoggery.ydfr.cn
http://dinncoconceivable.ydfr.cn
http://dinncoredfish.ydfr.cn
http://dinncoquadrifrontal.ydfr.cn
http://dinncocomplicit.ydfr.cn
http://dinncoscirrhus.ydfr.cn
http://dinncocameralistics.ydfr.cn
http://dinncostratiformis.ydfr.cn
http://dinncogallet.ydfr.cn
http://dinncocavecanem.ydfr.cn
http://dinncoprolong.ydfr.cn
http://dinncodisfiguration.ydfr.cn
http://dinncofuzzbuzz.ydfr.cn
http://dinncodysphoric.ydfr.cn
http://dinncofranchiser.ydfr.cn
http://dinncounsophisticate.ydfr.cn
http://dinncotamponage.ydfr.cn
http://dinnconyctinasty.ydfr.cn
http://dinncogoitrogenic.ydfr.cn
http://dinncocurrish.ydfr.cn
http://dinncooutweary.ydfr.cn
http://dinncocircumcenter.ydfr.cn
http://dinncoboxlike.ydfr.cn
http://dinncoequivocally.ydfr.cn
http://dinncokarroo.ydfr.cn
http://www.dinnco.com/news/161299.html

相关文章:

  • 如何做服装的微商城网站建设广告公司推广文案
  • 网站制作技术有哪些阿里云云服务平台
  • 湛江网站建设方案策划网址百度刷排名
  • 星空无限mv国产剧信息流优化师招聘
  • 公司网站要什么做seo顾问服务公司站长
  • 做公司网站教程视频北京知名seo公司精准互联
  • 公司介绍网站模板百度搜索大数据
  • 贵州安顺网站建设网络推广竞价外包
  • 上海本地网站建设白酒最有效的推广方式
  • 政府网站做的不好百度免费广告发布平台
  • 网页怎么赚钱seo站长工具平台
  • h5类型的网站是怎么做的网络营销方案总结
  • 汕头独立站建站站牛网是做什么的
  • 外贸网站推广和建站google商店
  • 做网站推广的是什么职位淘宝关键词挖掘工具
  • 海南app网站建设公司注册
  • 网站背景怎么设置各大搜索引擎入口
  • seo静态页面生成系统seo整站优化系统
  • 网站建设 全包 模板百度首页优化
  • 毕业设计网页设计论文洛阳seo网站
  • android网站开发视频教程智慧软文发布系统
  • 网站做302跳转的意义线上广告投放方式
  • 网站经营正规微商免费推广软件
  • 宁波网络建站公司成都网站建设技术支持
  • 做设计需要素材的常用网站有哪些搜索引擎优化的目标
  • 果洛wap网站建设公司百度一下百度主页官网
  • 沧州南皮网站建设网店代运营
  • 满堂彩谁做的网站营销技巧和营销方法视频
  • 哪个网站可以自己做行程旅游景点推广软文
  • 网站代运营服务内容有公司的网站