【问题标题】:Activity not declared in AndroidManifest.xml even if it isActivity 未在 AndroidManifest.xml 中声明,即使它是
【发布时间】:2018-11-19 06:54:11
【问题描述】:

突然出现以下错误:

android.content.ActivityNotFoundException:找不到明确的活动类。

虽然我已经在文件AndroidManifest.xml 中声明了我的应用程序的所有活动。 有谁知道如何解决这个错误? 谢谢大家

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.uniparthenope.jacoe.homework_tmm">
<uses-feature android:name="android.hardware.camera"
              android:required="true"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".SignUpActivity"
        android:parentActivityName=".MainActivity">
    <!-- The meta-data tag is required if you support API level 15 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity"/>
</activity>
</application>

</manifest>

这是我的MainActivity.java,我在其中通过 Intent 调用活动SignUpActivity.java

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private TabLayout tabLayout;
private ViewPager viewPager;

ChatFragment chatFragment;
CallsFragment callsFragment;
StatusFragment statusFragment;
PhotoFragment  photoFragment;

String[] tabTitle = {"FOTO", "CHIAMATE", "CHAT", "STATO"};
int[] unreadCount = {0, 0, 5, 0};

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

    Toolbar toolbarapp = (Toolbar) findViewById(R.id.Whatsapp_tmm_toolbar);
    setSupportActionBar(toolbarapp);


    viewPager = (ViewPager) findViewById(R.id.viewpager);
    viewPager.setOffscreenPageLimit(4);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tablayout);
    tabLayout.setupWithViewPager(viewPager);

    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            viewPager.setCurrentItem(position, false);

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_button, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.login:
             Intent login = new Intent(this, SignUpActivity.class);
             startActivity(login);
             finish();
             return true;

【问题讨论】:

  • 您在哪个活动中收到此错误?你是如何开始活动的?
  • 你的项目中有子包吗?
  • @Sagar 我在 MainActivity 中遇到了这个错误,正是在我调用 SignUpActivity 时。我正在使用意图启动 SignUpActivity。
  • @Derlin 没有只有一个包
  • 卸载重装应用后,我修复了,谢谢大家;)

标签: java android android-studio android-intent android-activity


【解决方案1】:

尝试在 Android Studio->Files->Sync Project with Gradle Files 中使用“同步项目与 Gradle 文件”同步。

有时我们在对 Manifest 进行更改后会错过这样做。

【讨论】:

  • 非常感谢,这实际上是为我工作 :)
  • 同步有时效率低下。重新启动 Android Studio 即可解决此问题。
【解决方案2】:

我在 Android Studio 4.0.1、android gradle 4.0.1 build gradle 6.1.1 上遇到了这个问题,无法通过此处的答案解决。

最终为我解决的问题是转到我的 app 文件夹并删除整个 .gradle 文件夹,然后使缓存无效并重新启动。正常的缓存失效不起作用。重建、清理、与 gradle 同步:如果没有我进入并删除整个 .gradle 文件夹,这些都不起作用。

【讨论】:

    【解决方案3】:

    尝试将活动名称作为包名和活动名称。 喜欢,

    <activity name="com.uniparthenope.jacoe.homework_tmm.MainActivity" />
    

    这将从描述的位置获取 id。

    【讨论】:

    • 在活动名称扩展到此之前给出 [dot]。为什么要明确写全名?
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2017-03-04
    • 2011-09-14
    • 2011-05-23
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多