在约束部分(例如app:layout_constraintBottom_toTopOf
)中首先定义id(@ + id)时,出现错误“无法解析符号”
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/tv2" />
<TextView
android:id="@id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</android.support.constraint.ConstraintLayout>
查看屏幕截图:
在gradle中,我的约束布局为1.1.3,Android Studio版本为3.2.1,我最近从较早版本进行了更新:
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
应用正常运行,没有任何错误,但该错误显示在android studio布局窗口中。
使缓存无效,重建和更改约束布局版本没有帮助!
Java类R.id.tv2
中的正常工作,当我按住Control键并单击它时,可以在R
类中看到其字段。 编辑器是否正在使用与Java代码中的R类不同的另一类ID?
答案 0 :(得分:0)
只需在所有地方使用@+id/
:加号表示这是一个新的资源ID,如果,aapt
工具将在R.java
类中创建一个新的资源整数。它不存在(docs)
答案 1 :(得分:0)
这个问题是关于旧 Android Studio 和当前版本的 Android Studio 中使用 ConstraintLayout
库的 androidx
版本中的一个错误,这个错误没有出现。