Android Studio编译报AAPT: error: resource android:attr/lStar not found.错误

Android Studio编译报AAPT: error: resource android:attr/lStar not found.错误

问题描述

工程代码没有做修改,编译总是提示attr/IStar not found,查代码无相关修改,clean project都无效。
问题如下所示:

> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     /xxxxx/.gradle/caches/transforms-2/files-2.1/63e2a511377effd1caf795d92b1d98ec/core-1.7.0-rc01/res/values/values.xml:105:5-114:25: AAPT: error: resource android:attr/lStar not found.

问题分析

通过clean project等操作无效,分析问题错误,core-1.7.0-rc01,查依赖包core,发现core-ktx依赖包存在动态版本的情况,即:androidx.core:core-ktx:+,而原来指定版本的是依赖1.3.2版本,所以找了问题所在,高版本资源冲突问题,调整版本即可。

解决方案

通过分析知道了是版本冲突的问题,有两种解决方案:

  1. 将动态版本替换为指定版本,即:
api 'androidx.core:core-ktx:+'
//替换为
api 'androidx.core:core-ktx:1.3.2'
  1. 通过强制指定版本来进行解决,即在app的build.gradle中指定版本:
force 'androidx.core:core-ktx:1.3.2'

问题思考

在开发中尽量避免使用动态版本,在编译时,使用动态版本会拉取最新的版本,容易产生不可预知的问题,不仅为开发及维护排查问题增加了成本,而且容易造成将一些在编译期不可发现的问题带到线上,造成一定的损失。
在开发中指定引入包的版本,或者为了版本的可控,在App侧强制指定到某个引入的版本。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 这个错误提示是指在编译Android项目时,aaptAndroid Asset Packaging Tool)无法找到名为“lstar”的资源属性。通常情况下,这个错误是由于在xml布局文件或者其他资源文件中使用了不存在的属性名“lstar”而引起的。 要解决这个问题,你需要仔细检查你的项目中的布局文件、资源文件以及代码中是否存在拼写错误或者使用了不存在的属性名。如果有,你需要进行相应的修改,确保所有属性名都正确无误。另外,也可以通过清除项目的构建缓存来尝试解决这个问题。 是的,您的理解是正确的。要更正此错误,您需要仔细检查您的Android项目中的所有布局文件、资源文件和代码中的属性名拼写错误或不存在的属性名。 您可以尝试在清除项目的构建缓存之后再次构建项目,看看这是否解决了该问题。 有时候,此错误可能是由于使用的依赖项不兼容或版本不正确所致。因此,您还可以检查项目中使用的所有依赖项,并尝试更新它们的版本。如果所有这些方法都无法解决问题,您可以尝试使用Android Studio提供的其他工具来分析和解决此问题。这个错误提示意味着在您的项目中,aapt (Android Asset Packaging Tool) 找不到名为 "android:attr/lstar" 的资源。这通常是因为您正在使用了一个较新版本的Android SDK,但您的项目中使用的资源文件并不兼容该版本。 要解决这个问题,您可以尝试以下几种方法: 1. 确认您的 Android SDK 和构建工具已经更新到最新版本。您可以通过 Android Studio 中的 SDK Manager 来检查和更新您的 SDK 和构建工具。 2. 检查您的项目中是否有任何过时的依赖项或库。如果您正在使用某个库,可以尝试更新到最新版本,或者从项目中移除。 3. 检查您的代码中是否存在任何使用过时的 Android API 的情况。如果有,请尝试使用最新的 API 或者兼容库替换它们。 4. 在您的 build.gradle 文件中添加以下行: ``` configurations.all { resolutionStrategy { force 'com.android.support:support-v4:27.1.1' } } ``` 这会强制 gradle 使用 Android Support Library 版本 27.1.1,这个版本中包含了该资源文件。 以上是一些可能的解决方法,如果这些方法都不起作用,您可以考虑在论坛或者 Stack Overflow 上发布您的问题,以获取更多帮助。 ### 回答2: AAPTAndroid 应用程序打包工具。它用于编译和打包 Android 应用程序的资源,包括布局、图像、字符串和 XML 文件等。当使用 AAPT 编译 Android 应用程序资源时,会发现类似于以下错误信息: aapt: error: resource android:attr/lstar not found. 这个错误信息通常意味着你的 Android 项目中存在一个引用了未定义的资源或属性。更具体地说,它指的是应用程序尝试引用了一个名为 “lstar” 的属性,但是 AAPT 无法在 Android 框架中找到此属性的定义。 这个属性通常是由第三方库或插件定义的。也就是说,它不是 Android 框架中的一部分。因此,为了解决此问题,你需要找出引用了 “lstar” 属性的库或插件,并尝试更新或修复它们,使它们包含正确的资源定义。 解决此问题的其他方法包括: 1. 确保使用的 Android SDK 的版本与你的应用程序的目标 SDK 版本匹配。如果你使用了一个过期的 SDK 版本,你可能会遇到此问题。 2. 确保你的 build.gradle 文件中包含正确的依赖关系。如果你使用了不兼容的依赖项,例如包含无法识别的属性或方法的库,那么编译过程中可能会出现问题。 3. 检查 AndroidManifest.xml 文件中是否存在任何错误或重复的定义。如果你定义了重复的配置或声明,它们可能会干扰 AAPT编译过程。 综上所述,如果你遇到了 aapt: error: resource android:attr/lstar not found 错误,那么你需要检查你的项目中引用的任何第三方库或插件,并确保它们包含正确的资源定义。此外,你还需要检查你的 Android SDK 版本、build.gradle 文件和 AndroidManifest.xml 文件,以确保它们不包含任何问题或错误。 ### 回答3: 当我们在开发 Android 应用时,可能会遇到一些编译时的错误,其中一个常见的错误是 aapt: error: resource android:attr/lstar not found。 这个错误信息通常出现在项目构建时,主要是由于代码中引用了未定义的属性。lstar 属性是 Android 5.0(API level 21)中引入的一种新属性,如果我们的项目 minSdkVersion 小于 21,那么编译时就会出现这个错误。 要解决这个问题,我们可以采取以下两种方法: 1. 在代码中排查引用了未定义属性的情况。我们可以在 Android Studio 中搜索 lstar 属性的引用情况,然后逐一排查。 2. 修改项目的 minSdkVersion。我们可以将 minSdkVersion 修改为 21 或更高版本,这样编译时就可以正常通过。但是需要注意,如果我们的应用需要支持低版本的 Android 系统,这种方法可能会导致应用无法兼容低版本的设备。 总的来说,aapt: error: resource android:attr/lstar not found 这个错误可以通过慎重地检查代码中的属性引用情况或者修改项目的 minSdkVersion 来解决。在解决这个问题的过程中,我们应该更加注意代码的兼容性,确保应用能够正常运行在不同版本的 Android 系统上。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunfeigeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值