当前位置: 首页 > 知识库问答 >
问题:

?可提取资源中的ATTR导致资源$NotFoundException

邵献
2023-03-14

res\drawable\mylayerlistdrawable.xml

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <selector>
        <item android:state_pressed="true">
            <shape android:shape="rectangle">
                <solid android:color="?attr/background_button_pressed" />
                <stroke
                    android:width="0.7dp"
                    android:color="?attr/text_color" />

                <corners android:radius="10dp" />

            </shape>
        </item>


        <item>
            <shape android:shape="rectangle">
                <solid android:color="@android:color/transparent" />
                <stroke
                    android:width="0.7dp"
                    android:color="?attr/text_color" />

                <corners android:radius="10dp" />

            </shape>
        </item>


    </selector>


</item>

-----------------------------------------------------------------------------------

最终答案

在api 21之前的xml可提取资源中,我们不能使用?attr。由aapt在编译时创建的可提取资源。运行时用于动态连接的Attr资源。

解决方案是为每个主题创建不同的缺点。

共有1个答案

濮波
2023-03-14
    null
<stroke android:color="@color/myColor" />
<stroke android:color="?attr/myColor" />
 类似资料:
  • 这里有一个案例:我有身份服务器、客户端应用程序和资源(API)。身份服务器在endpoint超文本传输协议://身份服务器: 8080/连接/用户信息上提供用户信息。如果您发送带有有效访问令牌的请求,您将获得有关用户的其他信息。如果我需要有关资源的这些信息,我将如何获得它。我有两个想法: 通过客户端获取用户信息。(客户端在userinfoendpoint上发送请求并获取信息,然后使用请求调用API

  • com.Android.builder.internal.aapt.v2.aapt2exception:Android资源编译失败/users/username/.gradle/caches/transforms-2/files-2.1/94 a628954aabd306de764f6ff2843371/res/values/values.xml:8:5-35:25:aapt:error:资源'a

  • 在最近升级了我的android工作室后,我不能再构建我的项目了。 重建、清理项目和使缓存无效都不起作用! 添加android.enableaapt2=false行并不能解决真正的问题,因此我宁愿找到问题的根源。 下面显示了我的gradle.build文件:

  • QuestionLibrary.java mainactivity.java

  • 本文向大家介绍Android中获取资源 id 及资源 id 的动态获取,包括了Android中获取资源 id 及资源 id 的动态获取的使用技巧和注意事项,需要的朋友参考一下  Android中获取资源 id 及资源 id 的动态获取 我们平时获取资源是通过 findViewById 方法进行的,比如我们常在onCreate方法中使用这样的语句: findViewById是我们获取layout中各

  • 包管理器 管理着 javascript 库,并提供读取和打包它们的工具。 npm:npm 是 javascript 的包管理器。官网 Bower:一个 web 应用的包管理器。官网 component:能构建更好 web 应用的客户端包管理器。官网 spm:全新的静态包管理器。官网 jam:一个专注于浏览器端和兼容 RequireJS 的包管理器。官网 jspm:流畅的浏览器包管理器。官网 End