AndroidStudioにデフォルトのアクティビティが見つかりません


93

Android Studio 0.2.8にアップグレードしたところ、実行構成を編集しようとすると、「デフォルトのアクティビティが見つかりません」というエラーが表示されます。

Android Studioを起動すると、「イベントディスパッチスレッドからのみアクセスが許可されます」というエラーが表示されます。

私が使用しているアクティビティはフラグメントアクティビティです。

これまで、キャッシュの再構築と無効化/再起動を試みました。どちらも役に立たなかった。

問題を解決するために何ができるか教えてください。


回答:


45

Android Studioで、プロジェクトを右クリックし、[モジュール設定開く]を選択します。次に、モジュールの[ソース]タブに移動し、srcフォルダーを見つけて右クリックし、ソース(青色)としてマークします。

編集: Android Studioの新しいバージョンにはソースタブはありませんが、代わりにbuild.gradleファイルを編集できます:https//stackoverflow.com/a/22028681/1101730(コメントJoshに感謝)


27
0.6.1でこれを行うにはどうすればよいですか?[ソース]タブが表示されません。
lschlessinger 2014年

7
私もダメ。プロパティ、署名、フレーバー、ビルドタイプと依存関係があります
ジュニアMayhéは

4
[ソース]タブがなかったので、代わりにbuild.gradleファイルを編集しました:stackoverflow.com/a/22028681
Josh

2
完璧!@Micerを助けてくれてありがとう。IntelliJプロジェクトで「F4」を押すと、3つのタブ(ソース、パス、依存関係)があり、「ソース」タブに移動して、「src」フォルダー(ツリー構造内)が青色かどうかを確認します。そうでない場合は、「Alt + S」を押して、プロジェクト構造にソースフォルダを含めます。
ライアンアマラル2014年

1
@IgorGanapolskyそうです、AndroidStudioの新しいバージョンで[ソース]タブが削除されたようです。Joshの答えを確認してください。
マイサー2015年

51

ACTION_MAINメインアクティビティにインテントフィルターを追加しましたか?これを追加しないと、Androidはメインアクティビティとして起動するアクティビティを認識しません。

例:

<intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <action android:name="com.package.name.MyActivity"/>
      <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

1
はい、これは行われます。openJDKの代わりにoracleJDKを使用して、「イベントディスパッチスレッドからのみアクセスが許可される」を修正しました。欠落しているデフォルトのアクティビティはまだ残っています
Vipassana Vijayarangan 2013

5
また、"com.package.name.MyActivity"すべての<intent-filter>要素が<activity>名前空間のMyActivityに対応する要素内にある場合は、名前が省略される可能性があります。
シャビモンテロ

ああ、私は名前が付けられたFilterすべての変数を含むという名前のクラスの名前を変更し、filterどうやらAndroidStudioはとを含めることにAndroidManifest.xmlしました<intent-*filter*>。この回答により、私の再確認が可能にAndroidManifest.xmlなり、バグを見つけるのに役立ちました=)
Stephan Henningsen 2016

これはどこに文書化されていますか?見つかりません…
mirabilos

32

プロジェクトをAndroidStudioにインポートするときに同じ問題が発生しました。これは、プロジェクトが現在コンピューターにインストールされているよりも古いバージョンのAndroidStudioで開発されていることが原因である可能性があります。

それを解決したのは、単に選択することでした。

File -> Invalidate Caches / Restart...

次に、を選択しInvalidate and Restartます。


1
@syntagmaに感謝します、あなたのガイダンスは何時間もの努力の後に私の問題を解決しました。
MMG

16

タブがなく、空のアクティビティから始めた場合は、これを試してください。以下はサンプルコード例です。

<application android:label="@string/app_name">

    <activity android:name=".HelloActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

</application>

次に、AndroidManifest.xmlファイルに移動します。次に、このコードからインテントフィルターをコピーします。マニフェストファイルをよく見て、上記のコードの正確な場所にインテントフィルターを貼り付けます。(マニフェストの.yourActivityName>部分の後。)これがお役に立てば幸いです。


13

実行後も実行構成を編集しようとすると、「デフォルトのアクティビティが見つかりません」というエラーが表示される場合は、次のようにします。

キャッシュを無効にして再起動します。

次に、Settings / Preferencesフォルダーを削除してみてください。

/< USER_HOME_DIR >/.AndroidStudioPreview3.2

またはMacの場合:

/Users/<USER_NAME>/Library/Preferences/.AndroidStudioPreview3.2

パッケージの名前を変更した場合、またはバージョン管理からブランチを切り替えた場合、Android Studioがすべてのファイルを認識せず、問題が発生することがあります。私のために働いた唯一の解決策は、ASを閉じてから、@ Phileo99が指摘した.AndroidStudioXY(XYはバージョン番号)を削除することです。
zbarcea Christian 2018

1
あなたは私の命を救いました!これを行うだけです/<USER_HOME_DIR>/.AndroidStudioPreview3.2
nadafafif 2018年

どういたしまして@nadafafif!それがあなたを助けたなら私の答えに賛成してください。
phileo 9918年

@ Phileo99すでにそれをしました。やめられませんでした。:)乾杯。そのように助け続けてください。
nadafafif

それは役に立ちましたが、たくさんのものをダウンロードすることに注意してください。それは、ダウンロードに15分程度tooks
Valgaal

10

[モジュール設定を開く]をクリックしたとき、[ソース]タブがありませんでした。これは、Android Studioの新しいバージョン(0.8.14を使用)では削除されているためだと思います。だから私は代わりにこれをしなければなりませんでした:

ブロックbuild.gradle内のファイルに次の行を追加しますandroid { ... }

android { ... sourceSets { main.java.srcDirs += 'src/main/<YOUR DIRECTORY>' } }

ファイルを編集した後、[ツール] > [Android ] > [プロジェクトをGradleファイルと同期]をクリックします

この回答このコメントの功績です。


9

以下は私のためにトリックをしました。[実行]-> [構成の編集]から。

ここに画像の説明を入力してください


サムスンギャラクシーS5ネオとサムスンギャラクシーS6で利用可能なアプリケーションのリストにアプリケーションが表示されなくなったため、このソリューションに反対することをお勧めします。
Teun Kooijman 2016年

3

私の問題は、時々ポップアップする追加のエラーに帰着しました。

Manifest Merger failed with multiple errors in Android Studio

最終的に問題を引き起こしたのは、複数のマニフェスト(デバッグマニフェスト、およびインポートしたばかりの新しいモジュールのマニフェスト)があり、これが原因で正しくマージされなかったという事実でした。この回答を見た後、マージされたマニフェストを分析し、問題の原因を見つけて修正することができました。


2

マニフェストのパスを大文字にしたので、これが起こりました。かわった:

<intent-filter>
    <action android:name="ANDROID.INTENT.ACTION.MAIN"/>
    <category android:name="ANDROID.INTENT.CATEGORY.LAUNCHER"/>
</intent-filter>

<intent-filter>
  <action android:name="android.intent.action.MAIN"/>
  <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

そしてそれは修正されました


あなたは私の日を救った!ありがとう
Siva Kumar 2016年

2

私は今日同じ問題に遭遇し、ここで答えを調べていました。

私にとっての違いは、昨日は正常に機能したことでした。そのため、実際には構成の問題ではなく、AndroidStudioの構成もバージョンも変更されていないと考えました。

幸い、他の回答を試す前にAndroid Studioを再起動してみましたが、幸いなことに問題は解決しました。

したがって、これに遭遇したすべての人にとって、最初に試すことはAndroid Studioを再起動することであり、それでも問題が解決しない場合にのみ、ここで他の回答を試してください。


2

Android Studio1.5.1でも同じエラーが発生しました。問題の原因を見つけました。原因が人為的エラーなのか、IDEの動作の奇妙な不具合なのかはわかりませんが、このテーマに関する既存のStackOverflowの質問には何も表示されていないようで、とにかく答えとして投稿すると思いました。

私にとって、チームメンバーの1人またはIDE自体が、ランチャーアクティビティマニフェストエントリを変更したため、次のようになりました。

        <activity
            android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <id android:name="android.intent.id.LAUNCHER" />
            </intent-filter>
        </activity>

実際には、次のようになります。

        <activity android:name="com.rhaebus.ui.activities.ActivitySplash"
            android:launchMode="singleInstance"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" /> <!-- Change Here -->
            </intent-filter>
        </activity>

したがって、マニフェストでランチャーアクティビティの形式を二重、三重、四重に確認してください。時間を節約できる可能性があります。

お役に立てれば。

編集:モジュールの構成オプション内でランチャーアクティビティを手動で選択することを提案する回答に従わないことを強くお勧めします。これにより、Samsung GalaxyS5の両方にインストールされているアプリのリストにアプリケーションが表示されなくなりました。 NeoとSamsungGalaxy S6(少なくとも私にとっては)。



1

パッケージ名がメインアクティビティと同じであることをマニフェストで確認してください


1
  1. Android Studioで、プロジェクトパースペクティブ(Androidパースペクティブではない)に切り替えます。

  2. プロジェクトがgradleプラグインのデフォルト構造(つまり、project_dir / app / src / main / java ...)に従っていることを確認してください

  3. 表示されているすべてのビルドフォルダーとサブフォルダーを削除します。

  4. ツールバーのクリックでビルド- >クリーンプロジェクトは、ビルド- >プロジェクトを再構築します

  5. プロジェクトを実行してみてください。


1

[構成の編集]メニューに移動して([Shift]を3回タップし、[構成の編集]と入力)、[起動オプション]> [起動]を[なし]に変更すると、AndroidStudioに文句を言わないようにすることができます。

混乱を避けるために、おそらく指示を含む一般的なアクティビティを追加します。


これは私の時間を節約しました
Sayali 2018

1

私の場合、プロジェクト(Project / .ida)から.ideaフォルダーを削除し、AndroidStudioを再度開いたときに機能しました。


.ideaフォルダーを削除すると、私の場合は役に立ちました。ありがとうございます。明確にするために、拡張子が「.iml」のすべてのファイルは.ideaフォルダー内にありました。他のエラーにつながる可能性があるため、.imlファイルのみを削除しないでください。
Cordis Audax Agrinova

0
  1. プロジェクトを右クリックして、[モジュール設定を開く]を選択します。
  2. モジュールの[ソース]タブに移動します。
  3. srcフォルダーを見つけます。
  4. それを右クリックして、ソースとしてマークします。

これで私の場合のエラーは解決しました。


0

たとえばcom.dir.sampleからcom.dir.sample1などのディレクトリの名前(クラス構造)を変更した場合は、パッケージcom.dir.sampleをcom.dir.sample1に変更することを忘れないでください。


0

「Workspace.xml」を変更します(Ctrl + Shft + Rを押して検索します)

  1. パッケージ名でアクティビティ名を変更します

  2. 必ず「name = "USE_COMMAND_LINE」をvalue =" false "に変更してください

  3. プロジェクトをリロードします

完了!


Ctrl + Shft + F、+ R =置換して検索します。F=検索します。
shishdem 2015年

0

「ソース」タブを見つけるのに苦労していた私のような人のために:

ここに画像の説明を入力してください

ここでは、「src」フォルダを青色でマークする必要があります(最初に[マーク]をクリックします:ソース、次にsrcフォルダをクリックします)。これで準備完了です。


0

あなたが取ることができる2つのステップがあります:

  1. 構成に移動し、起動するアクティビティの名前を入力します
  2. それでも機能しない場合インスタント実行を無効にする

0

私はすべての解決策を試しましたが、まったく機能していません。私のAndroidStudioでインスタント実行を無効にしようとしたよりも。

Android Studioの設定または設定(MACの場合)->ビルド、実行、デプロイ->インスタント実行に移動します

インスタント実行機能のチェックを外し、クリックした後、プロジェクトをgradleファイルと同期しますファイルメニューから

ビルドを実行します...


これは、Android 4.0以降メーカーのために、もはや有効で
ホルヘ・E.・エルナンデス

0

場合によっては、いくつかのcategoryフィールドを持つモデルを持つことができます。すべての場所でリファクタリングすると、マニフェストファイルでリファクタリングされ、タグxmlが無効になります。


0

この種のケースでは多くの可能性が発生する可能性があります(デフォルトのアクティビティが見つかりません)すべてのコードに問題がない場合、特にマニフェストでは、キャッシュを無効にしてスタジオを再起動するだけです。

ただし、マニフェストに重複するアクティビティ宣言がある場合は、メインアクティビティだけでなく、子アクティビティによってもトリガーされることがあります。

それは私に起こりました、マニフェストに重複する子アクティビティがあるため、デフォルトのアクティビティが見つかりません、それを削除した後、すべてが順調です



0

私はそれを考え出した。アクティビティ宣言に誤ってfinalキーワードを追加しました。削除すると、すべてが機能します。

public  class SplashActivity extends AppCompatActivity {
...
}

-1
  1. AndroidStudioの場合

  2. 構成の編集に移動します。

  3. アプリを選択します。

  4. ランチアクティビティパスを選択します。

  5. 適用します、OK。

    ありがとう!


-1

デフォルトのアクティビティ名が変更され(SplashActivity-> SplashActivity1など)、機能します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.