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

网站目录命名长沙网站设计开发

网站目录命名,长沙网站设计开发,泉州网上房地产,秦皇岛抚宁区建设局网站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的bug1、一段简单的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.encodingUTF-8 android.useAndroidXtrue android.nonTransitiveRClasstrue android.nonFinalResIdsfalse //id 找不到文件解决上面三个配置属性是默认就有的第四个需要自己添加进去 如果还有其他需求属性也是可以自己添加进入比如.kt代码要加对应的支持属性才能编译。 三、其他 1、小结 如果是新版本Android Studio 遇到 switch语句时报错Constant expression required 可以在gradle.properties文件添加android.nonFinalResIdsfalse 试试 看看是否能解决这个编译报错问题。 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 会直接使用缓存的结果从而大大提高构建速度尤其适用于频繁进行构建操作的项目如在持续集成环境中.2Android 项目配置属性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.enableJetifiertrue可以让 Gradle自动将这些库转换为使用 AndroidX方便项目的集成和升级.提高旧项目的兼容性。 android.nonTransitiveRClass:当设置android.nonTransitiveRClasstrue时R类的引用将不再具有传递性。在默认情况下android.nonTransitiveRClassfalse如果一个库项目例如Android Library暴露了它的R类那么使用这个库的其他项目主项目或者其他依赖此库的二级库可以访问这个库中的所有资源引用包括它所依赖的其他库的资源引用。android.nonFinalResIds:设置为false可以规避gradle高版本编译报错Constant expression required的问题3依赖管理属性versions.properties引用可以在gradle.properties文件中定义依赖库的版本号然后在build.gradle文件中通过变量引用这些版本号。这样当需要更新依赖库版本时只需要在gradle.properties文件中修改相应的版本号而无需在多个build.gradle文件中逐个查找和修改提高了依赖管理的效率和可维护性。例如appcompat_version1.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://www.hkea.cn/news/14376994/

相关文章:

  • 网站怎么添加外链小型网站网站建设需要
  • 湛江免费制作网站佛山网站建设乐云seo在线制作
  • 网站建设多少钱h5网址
  • 网站建设的公司系统规划做仓单的网站
  • 岳阳做网站 公司电话侯马做网站
  • 海南网站建设推荐seo自学网app
  • 弹性盒子做微网站服务商平台
  • 企业网站开发信息安徽省住房建设厅网站
  • 建设手机银行网站青岛北方现货交易平台
  • 郑州网站建设熊掌号赤壁市药监局网站建设方案
  • 网站上传图片尺寸做网站空间哪个好
  • 鸿铭物流网络建站北京网站建设 公司
  • 漯河市万金镇网站建设国内免费crm
  • 高端网站建设 炫酷衡水做网站公司
  • 潍坊网站建设品牌淄博网站设计丨致信网络
  • 忘记网站后台账号怎样优化推广
  • 广州越秀区网站建设淄博网站制作培训
  • 什么是建设型的网站网站备份脚本
  • 湖北城乡住房建设厅网站怎查证件手机笑话网站模板
  • 小说网站做公众号好还是网站好个人微信小程序怎么做
  • hishop网站搬家全国职业生涯规划大赛官网
  • 怎么做网站策划庆阳网站建设与制作
  • 建设银行网站为什么登不上附近设计公司
  • 购物网站开发意义泰州网络科技有限公司
  • 深圳宝安网站推广网站更名策划方案
  • 宁夏政务大厅城乡建设厅口网站关于网站建设公司大全
  • 茂名市城乡和住房建设局网站国外网站代做
  • 网站做支付宝和网银接口天猫商城官网下载
  • 彩票销信 网站怎么做百度 医疗网站建设
  • 福州网站制作好的企业注册资本1000万的公司需要多少钱