android studio无法解析符号ID

时间:2016-06-26 17:01:20

标签: android

我有一个问题:

EditText_Username = (EditText)findViewById(id.EditText_Username);

我有一个错误cannot resolve symbol id 每个具有id的代码行都有相同的错误。 我尝试重建整个项目并将其与gradle同步,但错误仍然存​​在。 PS:即使代码中有(id),应用程序也在模拟器中正常启动。

6 个答案:

答案 0 :(得分:3)

使用

EditText EditText_Username = (EditText)findViewById(R.id.EditText_Username);

代替。并验证你有

android:id="@+id/EditText_Username"

对于您使用Java类在XML中搜索Id的EditText对象。

答案 1 :(得分:0)

查看您的AndroidManifest.xml,您将拥有一个包ID。现在用Java文件中的packageId.R.id替换id

答案 2 :(得分:0)

您正在使用哪个班级?活动还是片段?

if Fragment

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_layout, container, false);
    EditText_Username = (EditText) view.findViewById(R.id.EditText_Username);
    return view;
}

并且对于良好的编码实践,使您的对象小例如" editTextUsername" " etUsername"," imgThumb"," tvTitle"等

答案 3 :(得分:0)

正如@ cricket_007所指出的,你可能statically imported是R类。

作为解决方案,请将代码放在代码的id.EditText_Username部分之前,然后按Alt+Enter。在弹出窗口中,选择Expand static import to R.id,然后选择Replace all and delete the import。现在删除了import static语句,并将所有匹配项重命名为R.id

答案 4 :(得分:0)

你应该写R.id。

首先编译代码,然后在真实或虚拟设备上运行。所以编译模拟器是不可能的,但不是真正的设备。

答案 5 :(得分:0)

在与您命名为R相同的范围内检查变量。如果您有一个名为R的变量,则将其重命名为其他名称。