![](/img/trans.png)
[英]Programmatically check if an Activity is declared in the AndroidManifest.xml
[英]Activity not declared in AndroidManifest.xml even if it is
突然我收到以下錯誤:
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;
嘗試在 Android Studio->Files->Sync Project with Gradle Files 中與“同步項目與 Gradle 文件”同步。
有時我們會在對 Manifest 進行更改后錯過執行此操作。
我在 Android Studio 4.0.1、android gradle 4.0.1 build gradle 6.1.1 上遇到了這個問題,但無法通過此處的答案解決。
最終為我修復的是轉到我的應用程序文件夾並刪除整個 .gradle 文件夾,然后使緩存無效並重新啟動。 正常的緩存失效不起作用。 重建、清理、與 gradle 同步:沒有我進入並刪除整個 .gradle 文件夾,一切都不起作用。
嘗試將活動名稱作為包名稱和活動名稱。 喜歡,
<activity name="com.uniparthenope.jacoe.homework_tmm.MainActivity" />
這將從描述的位置獲取 id。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.