解决 No resource found that matches the given name (at 'layout_above' with value '@id/button3').

本文记录了一次在学习《第一行代码》过程中遇到的XML布局问题:由于控件ID引用顺序不当导致的资源未找到错误。通过调整按钮控件的定义顺序,解决了ID引用错误的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天继续学习郭少的<<第一行代码>>,读到3.3.2相对布局这一章(P102页),根据书上的实例,运行以后在控制台显示了,

Information:Gradle tasks [:app:assembleDebug]
C:\Users\Administrator\AndroidStudioProjects\UILayoutTest\app\src\main\res\layout\activity_main.xml
Error:(10, 31) No resource found that matches the given name (at 'layout_above' with value '@id/button3').
Error:(11, 34) No resource found that matches the given name (at 'layout_toLeftOf' with value '@id/button3').
Error:(17, 31) No resource found that matches the given name (at 'layout_above' with value '@id/button3').
Error:(18, 35) No resource found that matches the given name (at 'layout_toRightOf' with value '@id/button3').

 

好你是说没有找到与‘@id/button3‘匹配的名字的资源,怎么回事呢,仔细看了一下activity_main.xml,发现了问题

 

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/button3"
android:layout_toLeftOf="@id/button3"
android:text="Button 1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/button3"
android:layout_toRightOf="@id/button3"
android:text="Button 2" />
<Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="Button 3" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button3"
android:layout_toLeftOf="@id/button3"
android:text="Button 4" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/button3"
android:layout_toRightOf="@id/button3"
android:text="Button 5" />

 

最后读到第103页,上面清楚的写到。注意,当一个控件去引用另一个控件的id时,该控件一定要定义在引用控件的后面,不然会出现找不到id的情况将button3写到中间了,将button3的位置放到button1上面就行了,期待大家不要犯同样的错误!

 

找不到R文件Error:com.android.ide.common.process.ProcessException: Error while executing process E:\AndroidSDK\build-tools\26.0.2\aapt.exe with arguments {package -f --no-crunch -I E:\AndroidSDK\platforms\android-26\android.jar -M \\?\E:\chapter02\FrameLayout\app\build\intermediates\manifests\full\debug\AndroidManifest.xml -S E:\chapter02\FrameLayout\app\build\intermediates\res\merged\debug -m -J \\?\E:\chapter02\FrameLayout\app\build\generated\source\r\debug -F E:\chapter02\FrameLayout\app\build\intermediates\res\debug\resources-debug.ap_ --custom-package com.example.dell.framelayout -0 apk --preferred-density xxhdpi --output-text-symbols \\?\E:\chapter02\FrameLayout\app\build\intermediates\symbols\debug --no-version-vectors} Error:Execution failed for task &#39;:app:processDebugResources&#39;. > Failed to execute aapt Error:org.gradle.process.internal.ExecException: Process &#39;command &#39;E:\AndroidSDK\build-tools\26.0.2\aapt.exe&#39;&#39; finished with non-zero exit value 1 Error:(165, 31) No resource found that matches the given name (at &#39;layout_above&#39; with value &#39;@id/btn_submit&#39;). Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing process E:\AndroidSDK\build-tools\26.0.2\aapt.exe with arguments {package -f --no-crunch -I E:\AndroidSDK\platforms\android-26\android.jar -M \\?\E:\chapter02\FrameLayout\app\build\intermediates\manifests\full\debug\AndroidManifest.xml -S E:\chapter02\FrameLayout\app\build\intermediates\res\merged\debug -m -J \\?\E:\chapter02\FrameLayout\app\build\generated\source\r\debug -F E:\chapter02\FrameLayout\app\build\intermediates\res\debug\resources-debug.ap_ --custom-package com.example.dell.framelayout -0 apk --preferred-density xxhdpi --output-text-symbols \\?\E:\chapter02\FrameLayout\app\build\intermediates\symbols\debug --no-version-vectors}
最新发布
03-13
这段代码存在一些问题。其中,"偏好选择"、"全览"、"路况"和"开始导航"的文本应该使用`@string`资源来定义,而不应该直接写在布局文件中。这样做可以方便后续的国际化和本地化。你可以在`strings.xml`文件中定义这些文本,例如: ``` <string name="btn_prefer">偏好选择</string> <string name="btn_fullView">全览</string> <string name="btn_road">路况</string> <string name="btn_startNavigation">开始导航</string> ``` 然后在布局文件中使用`@string`引用这些资源,例如: ``` <Button android:id="@+id/btn_prefer" android:layout_width="80dp" android:layout_height="40dp" android:layout_alignParentBottom="true" android:background="@drawable/bnav_tab_background" android:gravity="center" android:text="@string/btn_prefer" android:textSize="18sp" /> <Button android:id="@+id/btn_fullView" android:layout_width="50dp" android:layout_height="40dp" android:layout_above="@id/btn_prefer" android:layout_marginBottom="5dp" android:background="@drawable/bnav_tab_background" android:gravity="center" android:text="@string/btn_fullView" android:textColor="#333333" android:textSize="18sp" /> <Button android:id="@+id/btn_road" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" android:background="@drawable/bnav_tab_background" android:gravity="center" android:text="@string/btn_road" android:textColor="#333333" android:textSize="18sp" /> <Button android:id="@+id/btn_startNavigation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/btn_bg_selector" android:paddingLeft="40dp" android:paddingRight="40dp" android:text="@string/btn_startNavigation" android:textColor="@android:color/white" android:textSize="16sp" /> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值