解决AS中主题Validates resource references inside Android XML files和预览:Failed to load AppCompat ActionBar

最近用AS新创建了一个Project,升级了Gradle后,发现style文件中主题报红并且xml文件预览不了,但是不影响编译。但是对一个追求完美的码农(手动狗头)来说也是难以忍受的,于是果断度娘一下

一、style文件中:Cannot resolve symbol ‘Theme’ less… (Ctrl+F1) Validates resource references inside Android XML files问题的解决

下面是网上对Cannot resolve symbol ‘Theme’ less… (Ctrl+F1) Validates resource references inside Android XML files问题的常见解决方案:

1、清理项目:Build——>Clean Project
2、与Gradle文件同步:File——>Sync Project with Gradle Files
3、清空缓存重启:File——>Invalidated Caches/Restart
4、升级SDK Manager
5、重装Android Studio(代价太大,弃用)

我试了前四种方法都没用,如果对你有用,那么真心的恭喜你!

准备要放弃的时候又不死心去stackoverflow查了下,可以说功夫不负有心人,下面这种方案终于解决了我这个问题:

If That doesn’t work, following might help (Solution 3) :
1、Remove/Cut following dependencies :(移除对v7包的依赖)
implementation 'com.android.support:appcompat-v7:x.x.x' implementation 'com.android.support:design:x.x.x'
2、Click on ‘Sync Now’(同步项目)
3、Add/Paste dependencies again and Sync again(重新添加对v7包的依赖在同步项目)
4、Done.
注意:如果你的项目中依赖的第三方库也对v7包添加了依赖,可以按上面的办法,先移除对第三方库的依赖,同步后再重新添加

style文件中Validates resource references inside Android XML files问题总结:

先移除对v7包的依赖(包括第三方库中的),同步后再重新添加依赖

二、xml文件预览时Failed to load AppCompat ActionBar with unknown error问题的解决:

一般这个问题也会伴随着上一个问题出现,如果你已经解决了上面的问题,预览时还是出现问题,那么你只需要这样做:

//这是我预览出现问题的主题
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowAnimationStyle">@style/Animation_Activity</item>
    </style>

只需要把Theme.AppCompat.Light.DarkActionBar替换成Base.Theme.AppCompat.Light.DarkActionBar,是的,就是这么简单,你会发现已经可以预览了

希望对你有帮助

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: validates resource references的意思是验证资源引用。在编程,我们经常需要引用其他资源,如数据库表、文件等。使用validates resource references可以确保我们引用的资源是有效的,避免出现错误。这个功能在编写高质量的代码时非常重要。 ### 回答2: 在编程领域validates resource references(验证资源引用)指的是检查和确认程序所引用的资源是否有效、存在且正确。资源引用可以包括文件、数据库记录、网络连接、API 接口等。 验证资源引用的主要目的是确保程序能够正确地访问和使用所需的资源,以避免出现潜在的错误和异常情况。这一过程可以在程序运行前、运行或运行后进行。通过验证资源引用,我们可以确保所调用的资源不存在错误或不可用的情况,从而提高程序的稳定性和可靠性。 验证资源引用通常涉及以下几个方面: 1. 存在性检查:验证程序所引用的资源是否存在,以防止程序在不可用资源上操作,避免了可能的崩溃和异常情况。 2. 格式检查:验证资源引用的格式是否正确,例如检查文件路径是否有效、数据库记录是否合法等。这可以保证资源的正确访问和使用。 3. 访问权限检查:验证程序是否具有访问所需资源的权限,例如文件读写权限、数据库查询权限等。这可以保护程序的安全性和数据的完整性。 4. 连接测试:验证程序与所引用的网络资源或服务的连接是否正常,以确保程序能够正确地使用这些资源。 通过对资源引用进行验证,我们可以尽早地发现和解决潜在的问题,提高程序的健壮性和可维护性。此外,验证资源引用还可以增加程序的可测试性,方便进行单元测试和集成测试,从而提高开发效率。 ### 回答3: 验证资源引用是一种用于确保所引用的资源存在且有效的操作。当我们在开发应用程序或系统时,经常需要引用和使用其他资源,如数据库、文件、网络连接等。在使用这些资源之前,我们需要确保它们是有效的,否则可能会导致应用程序崩溃或功能异常。 验证资源引用可以通过一些方式进行。首先,可以检查资源的存在性。例如,在引用数据库时,我们可以检查数据库连接是否成功建立,或者在引用文件时,我们可以检查文件是否存在。如果资源不存在,我们需要采取相应的措施,如重新尝试建立连接或报告错误。 其次,验证资源引用还可以通过验证资源的正确性。例如,在引用数据库时,我们可以检查数据库表是否存在,或者在引用文件时,我们可以检查文件的格式是否正确。如果资源的内容不符合预期,我们可以采取相应的处理方法,如返回错误信息或进行数据转换。 验证资源引用对于确保应用程序的正常运行和准确性非常重要。它可以帮助我们在使用资源之前进行必要的检查和校验,避免潜在的问题和错误。同时,它还可以提供更好的用户体验和操作可靠性,让用户使用应用程序时更加顺畅和满意。因此,有效验证资源引用是开发高质量应用程序的重要一环。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值