我该如何解决无法解析符号'activity_main'的问题?

时间:2019-08-08 09:20:14

标签: java android xml android-studio

有人可以帮助我解决此问题吗?一切似乎都很好。我的xml和java看起来很正常,但是我似乎找不到错误的地方。我已经尝试过使缓存无效并清理项目,但是错误仍然存​​在。反正我可以解决这个问题吗?

我的问题: 无法解析符号“ activity_main”

enter image description here

MainActivity

package com.example.machineproblem2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.view.ContextMenu;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Bundle;

      public class MainActivity extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/lbl_msg"
        android:textAppearance="?android:attr/textAppearanceLarge"/>
    <EditText
        android:id="@+id/etMsg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:hint="@string/lbl_msg">
        <requestFocus/>
    </EditText>
    <Button
        android:id="@+id/btnNext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn_send"
        android:onClick="doNextActivity"/>

    <TextView
        android:id="@+id/tvContext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/msg"
        android:textAppearance="?android:attr/textAppearanceLarge"
        />
</LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

4 个答案:

答案 0 :(得分:0)

1-尝试先清理然后重建项目(“生成”>“清理项目/重建项目”)

2-如果(1)与您不兼容,请单击:“文件”>“使缓存无效/重新启动”,     然后单击“无效并重新启动”按钮。

答案 1 :(得分:0)

添加

import com.example.machineproblem2.R 

我在您的导入文件中看不到它,因此Activity无法解析activity_main.xml,因为它不了解R的含义。

另一种解决方法:

尝试将包从com.example.machineproblem2重命名为com.example.machineproblem。 您有可能违反单个软件包的命名规则(请参阅:Package names in Android studio when dev name starts with a number?

答案 2 :(得分:0)

R.layout是否可以访问其他xml布局? (activity_second和layout_toast)?至少您至少会知道这是该布局问题还是整个项目的问题。如果其他工作正常,则考虑复制粘贴布局,然后查看是否可以引用新的布局。

答案 3 :(得分:0)

建议的修补程序实际上没有用,所以我做了。

  1. 复制了activity_main的内容

  2. 删除activity_main

  3. 创建一个具有相同名称的新布局

  4. 将先前xml文件的复制内容粘贴到新布局中。

为什么没有检测到先前的activity_main却可以解决此问题,这还是个谜