8

我正在尝试从 PreferenceActivity 开始一个新的 Activity。但是,它失败并显示“无法找到显式活动类。您是否在 AndroidManifest.xml 中声明了此活动?”

嗯,是的,我宣布了:

<application [......] android:debuggable="true">
    <activity android:name=".AlarmSettings"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".FlashLightActivity"></activity>

    <receiver
        android:name="AlarmReceiver"
        android:process=":remote" >
    </receiver>
</application>

AlarmSettings 是我的 PreferenceActivity。AlarmSettings 以这种方式调用 FlashLightActivity:

Intent i = new Intent(AlarmSettings.this, FlashLightActivity.class);
startActivity(i);

这是 FlashLightActivity:

public class FlashLightActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.flashlight);
   }    
}

... 我不知道该怎么办。有任何想法吗?

4

6 回答 6

6

我也有这个问题。如果您仔细阅读 logcat 上的错误,您将知道该怎么做。

您必须在 AndroidManifest.xml 中声明活动

    <activity
        android:name=".TheNameOfMyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
于 2012-05-30T12:02:16.533 回答
2

对我来说,发生此错误是因为我已将我的活动类文件移动到不同的包中,并且由于某种原因 Eclipse 没有正确重构它。始终为您的活动使用完全限定名称,并仔细检查它是否准确。

于 2013-12-18T15:51:57.440 回答
2

从另一个内部启动一个 Activity 时,您需要为您的 AndroidManifest 文件提供父子关系,以确保启动的 Activity 将其结果返回给您需要父 Activity。例子,

<activity
            android:name="ACTIVITY TO BE STARTED"
            android:label="@string/TITLE"
            android:screenOrientation="landscape" >
             <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="ACTIVITY STARTED FROM?RETURNING TO" />
        </activity>
于 2014-05-26T06:58:05.987 回答
0

将海报的解决方案复制到答案部分,以便将其从“未回答”过滤器中删除:

这不是我的代码的问题,而是 Eclipse 和 Android SDK 的问题。经过一番研究,我在 Eclipse 中执行了“帮助 -> 检查更新”,现在一切正常。

于 2012-03-04T03:57:24.907 回答
0

我有同样的问题,我所做的是onCreate在服务或布局的函数中编写意图声明。实际上这就是“无法访问Explicity”的意思

于 2016-07-04T14:30:20.297 回答
0

就我而言,我只需要重命名该类,因为这是从 android studio 保留的单词或有其他参考,所以:

  • crl可以用+找到这个space并检查你的建议路线
  • 检查类中的导入并删除不需要的
  • 不要使用默认名称

所以不要使用FlashLightActivity例如。

也许它对其他人的工作

于 2020-04-10T19:45:30.023 回答