找不到符号类意向

2022-09-05 00:17:00

我是Android开发和编码java和xml的新手。

但是我正在遵循本教程:

http://www.steventrigg.com/activities-and-the-action-bar-create-an-alarm-clock-in-android-tutorial-part-1/#comment-296

然后我在使用意图时遇到了这个错误。开关下的单词“Intent”变为红色,并且出现错误“找不到符号类 Intent”

有人可以向我解释发生了什么以及如何解决这个问题吗?

这是我在 AlarmListActivity 下代码的最后一部分.java

@Override

public boolean onOptionsItemSelected(MenuItem item) {

   int id = item.getItemId();
   if (id == R.id.action_settings) {
       return true;
   }

   switch (item.getItemId()) {
       case R.id.action_add_new_alarm: {
           Intent intent = new Intent(this,
                   AlarmDetailsActivity.class);

            startActivity(intent);
            break;
        }
    }
    return super.onOptionsItemSelected(item);
}

答案 1

再次查看您的 AlarmListActivity 并检查顶部的导入语句,并确保它包含以下行:

import android.content.Intent;

如果打算使用不属于包的任何预先存在的类,则通常必须导入这些类。例如,Android是一个预先构建的类,由Android开发团队编写,允许通知其他应用程序/活动。如果要使用 ,则必须导入包含 Intent 的包。java.langIntentIntent

当您编写 时,编译器会看到您正在请求构造新对象,但由于在包中找不到该对象,因此它需要知道在何处查找蓝图以构建该对象。导入语句是该蓝图的位置。new Intent()java.lang

我看了一下教程,以经验丰富的程序员的方式,作者似乎已经掩盖了一些基本但重要的事情,例如使他的示例代码工作的import语句。


答案 2

我有一个同样的问题,我刚刚解决了,通过了解Android Studio如何索引文件,如您所知,构建Android应用程序是相当复杂的过程。因此,Android Studio有一些内部引用,它会在您创建的每个文件发生更改时不断更新。

我在寻找解决方案时到达了这篇文章,

这就是我遇到这个问题的方式

我通常不会在主项目包下创建活动,我创建子包以根据我使用的设计模式组织文件,例如,如果我的APP名称是com.example.testingaravind,那么我通常会在内部创建包,例如活动,服务,模型,管理器等...所以今天我只是先创建了一个活动,然后通过Android Studio将该活动移动到activites包中,我开始面临与你描述的相同的问题,以下是我的源代码。

    public class BootstrapActivity extends ActionBarActivity {

        private static final String TAG = "BootstrapActivity";

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

        public void startServiceOnClickHandler(View view) {

            Intent intent = new Intent(BootstrapActivity.this , AnalyzerService.class);
            startService(intent);
        }
}

在方法startServiceOnClickHandler中,它显示一个错误,说“无法解析构造函数意图”我在谷歌中搜索了很多,发现

当我将文件从一个包移动到另一个包时,我的清单文件不会更新,在清单中,我们提到了活动名称及其包路径,在我的情况下,它应该是

   android:name=".activities.BootstrapActivity"

但它是

   android:name=".BootstrapActivity"

因此,Android studio 并不知道活动文件夹中存在一个名为 BootstrapActivity 的类,

这似乎是Android工作室工作方式中的一个错误。Android Studio 必须在我将活动类文件从一个包移动到另一个包时更新清单文件。

我发布此内容是为了帮助其他可能使用类似用例到达此帖子的人。


推荐