"Cannot Resolve Symbol" 使用 android:id="@+android:id/my_id" 时出错
"Cannot Resolve Symbol" Error when using android:id="@+android:id/my_id"
当我将 android:id/background 添加到命名空间时,Lint 抱怨它 "Cannot Resolve Symbol" 即使我请求添加它而不是调用它。代码按编写的方式工作,但错误仍然存在。当我更改 <item android:id="@+android:id/background" to <item android:id="@+id/background"
时,应用程序停止工作(另一个调用中断)。我的问题是:为什么 Lint 无法识别我将 android:id/background 添加到命名空间,即使对它的调用运行良好?有没有更好的方法给这个项目一个不会让 Lint 抛出错误的 id?
下面层列表中项目的所有三个命名空间定义都会引发 lint 错误:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
android:drawable="@drawable/custom_ratingbar_empty" />
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/custom_ratingbar_empty" />
<item android:id="@+android:id/progress"
android:drawable="@drawable/custom_ratingbar_filled" />
</layer-list>
我找到 this 并按照建议尝试了 运行 build->clean 但没有成功。
试试把@+android:id换成@+id看看行不行!
您似乎使用了额外的 +
。
您应该将其删除,将 @+android:id/background
替换为 @android:id/background
。
如果您要创建自己的 ID:
"@+id/your_new_id"
如果您正在访问您已经创建的 ID
"@id/your_old_id"
如果您尝试访问 Android 的系统创建的 ID
"@android:id/system_id"
你可以看到区别,如果你正在创建自己的 id,那么你必须添加 +
。由于您正在访问系统 ID,因此您不必添加 +
当我将 android:id/background 添加到命名空间时,Lint 抱怨它 "Cannot Resolve Symbol" 即使我请求添加它而不是调用它。代码按编写的方式工作,但错误仍然存在。当我更改 <item android:id="@+android:id/background" to <item android:id="@+id/background"
时,应用程序停止工作(另一个调用中断)。我的问题是:为什么 Lint 无法识别我将 android:id/background 添加到命名空间,即使对它的调用运行良好?有没有更好的方法给这个项目一个不会让 Lint 抛出错误的 id?
下面层列表中项目的所有三个命名空间定义都会引发 lint 错误:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background"
android:drawable="@drawable/custom_ratingbar_empty" />
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/custom_ratingbar_empty" />
<item android:id="@+android:id/progress"
android:drawable="@drawable/custom_ratingbar_filled" />
</layer-list>
我找到 this 并按照建议尝试了 运行 build->clean 但没有成功。
试试把@+android:id换成@+id看看行不行!
您似乎使用了额外的 +
。
您应该将其删除,将 @+android:id/background
替换为 @android:id/background
。
如果您要创建自己的 ID:
"@+id/your_new_id"
如果您正在访问您已经创建的 ID
"@id/your_old_id"
如果您尝试访问 Android 的系统创建的 ID
"@android:id/system_id"
你可以看到区别,如果你正在创建自己的 id,那么你必须添加 +
。由于您正在访问系统 ID,因此您不必添加 +