2016-12-20 16 views
1

私は多くの同様の質問を行ってきましたが、役に立たなかった解決策はありませんでした。私がこのアクティビティを(同じデバッグセッションで)起動した直後に、デバッグ中に突然起こったことに言及する価値があります。私は何か重要なものを変更しなかったので、私はこの問題をどうやって得たのか全く分かりません。ActivityNotFoundException:明示的なアクティビティクラスを見つけることができません

私は新しい活動を開始しようとすると、私はエラーを取得:

Intent intent = new Intent(SplashActivity.this, MainActivity.class); 
startActivity(intent); 

エラーメッセージ:

android.content.ActivityNotFoundException:明示的な アクティビティクラス{com.xxxを見つけることができません/com.xxx.MainActivity}; AndroidManifest.xmlでこのアクティビティを宣言しましたか?

両方のアクティビティが同じパッケージcom.xxxで宣言されています。マニフェスト(無関係なコードを削除):

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    package="com.xxx"> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

    <application 
     android:name="misc.App" 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" 
     tools:replace="android:icon"> 
     <activity 
      android:name=".SplashActivity" 
      android:theme="@android:style/Theme.NoTitleBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".MainActivity" 
      android:label="" 
      android:theme="@style/Theme.AppCompat.NoActionBar" /> 
    </application> 
</manifest> 

私は両方のマニフェストに明示的なパスを入れてIntentを作成するときのようなものを試してみましたが、それは助けるだけでなく、プロジェクトをクリーニングしませんでした。

ありがとう!

EDIT:ここは、プロジェクト構造の活動の一部です:

Image

+0

コードがすべて表示される限り、Android Studioでインスタント実行が有効になっていますか?https://developer.android.com/studio/run/index.html#instant-run?私はインスタント実行によって引き起こされる説明が難しい問題がありました。私はそれを無効にし、クリーンビルドを実行して問題が解決するかどうかを確認します。 – Bobbake4

+1

独自のマニフェストファイルを持つ別のライブラリをプロジェクトにインポートしましたか? –

+0

@ Bobbake4元々無効になっていました。私は実際にそれを有効にしてからもう一度無効にしようとしましたが、役に立たなかった。 –

答えて

0

私はMainActivityのクリーンコピーを作成したが、XMLを複製し、古い活動へのすべての参照を置き換え、それが動作します。マニフェストの宣言も同じです。

なぜこの問題が発生したのかわかりませんが、詳細な検査ではそれほど価値がないので、この回避策は時間がかかりません。

編集:私はこの問題に再び直面し、本当の問題を発見しました。前述のアクティビティを無効にするコードがあり、アプリが終了して再度開いてもActivityNotFoundExceptionがスローされます。キャッシュをクリアすると状況が明らかになったと思います。

とにかく、私はMainActivityを有効にするには、呼び出し側の活動に一時的なコードを追加し、それが働いた:

PackageManager pm = getPackageManager(); 
pm.setComponentEnabledSetting(new ComponentName(this, MainActivity.class), 
       PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 

が、私は明らかに関連していない無効にするコードを、削除しました。

関連する問題