Activity 未在 AndroidManifest.xml 中声明,即使它是
Posted
技术标签:
【中文标题】Activity 未在 AndroidManifest.xml 中声明,即使它是【英文标题】:Activity not declared in AndroidManifest.xml even if it is 【发布时间】: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 没有只有一个包 卸载重装应用后,我修复了,谢谢大家;) 【参考方案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]。为什么要明确写全名?以上是关于Activity 未在 AndroidManifest.xml 中声明,即使它是的主要内容,如果未能解决你的问题,请参考以下文章
Realm 实例未在 Activity#onDestroy 上关闭
Activity 未在 AndroidManifest.xml 中声明,即使它是