エラータイプ3エラー:アクティビティクラス{}は存在しません


397

IntelliJ Androidプロジェクトがあり、Android Studio 0.4.0に正常にインポートしました。マニフェストで何も変更しなければ、問題なく動作します。しかし、ランチャーアクティビティを変更して実行したい場合、次のエラーで失敗します。

Launching application: com.trackingeng/LandingActivity.
DEVICE SHELL COMMAND: am start -D -n "com.trackingeng/LandingActivity"  
    -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN  
    cat=[android.intent.category.LAUNCHER] cmp=com.trackingeng/LandingActivity }
Error type 3
Error: Activity class {com.trackingeng/LandingActivity} does not exist.

Sync Project with Gradle filesをクリックすると、次のように出力されます。

Project Sync
The project 'TrackingEng' is not a Gradle-based project

実行設定: ここに画像の説明を入力してください


元のAndroidManifest.xmlファイルはどこにありますか?
twlkyao 2014年

同じ場所で、プロジェクトのメインフォルダーの下。
ジェイコブ

つまり、投稿内のこの写真はあなたのオリジナルAndroidManifest.xmlかどうかです。
twlkyao 2014年

7
スレッドを見つけました。お役に立てれば幸いです。stackoverflow.com/questions/19670607/...
twlkyao

4
OPのケースでは効果的ではありませんが、gradle syncを実行することで解決Error: Activity class {...} does not exist.しました。
恐竜

回答:


612

リファクタリング後、同様の問題に直面しました。
これは私がこの問題を解決するためにしたことです:

  1. プロジェクトをクリーンアップ
  2. Buildディレクトリを削除しました
  3. Android Studioを再起動しました
  4. プロジェクトを再構築する
  5. 走る
  6. 必要に応じて(Androidの[ファイル]メニューに移動し、[キャッシュの無効化/再起動...]をクリックして、携帯電話のアプリをアンインストールして、もう一度試してください)

そして、すべてがうまくいきました!IDE
再起動することが重要だと思います

これがあなたや他の誰にも役立つことを願っています!

編集1:
上記の手順でうまくいかない場合は、@ Yasithaが指摘しているように、Gradleキャッシュを削除することが解決策のようです。

編集2
数人のユーザーが以下のコメントで提案しているように、デバイスからアプリを完全に削除して再インストールすることで問題を解決できる場合があります。端末からアプリを完全に削除するには、ターミナルに
入力adb uninstall <package>するだけです。

編集3 Abhishekの回答
述べたように、デバイスに複数のユーザーが設定されている場合は、デバイスからアプリを削除してみてください。 単に行く
Mobile Settings > Apps > [Your App] > More > Uninstall App for All Users

Android Studio 2.1以降のアップデート

Android Studio 2.1以降を実行しているときに、環境設定でインスタント実行オプションが有効になっている(デフォルトでは有効になっている)場合にも、この問題が発生する可能性があります。

このオプションを無効にするにPreferencesは、Android Studioトップメニューのオプションに移動し、Instant Runその画面の最初のチェックボックスをオフにできるか探します。

Android Studio 2.1以降でInstant Runを無効にする

とにかくそれは私のためにそれを修正しました。もともとユーザー@yusufonderによって指摘されました。Gradleインストールがまだ機能していたので、これが問題であることがわかりました。


2
ビルドディレクトリを削除しなくても正常に動作します。
Shivam Bhalla 2015年

12
ここで説明するように、私は、削除Gradleのキャッシュを行いましたstackoverflow.com/a/25602161/630833
jayeffkay

4
これは遅いエントリーですが、Android Studioを1.5に更新した後にのみこの問題に直面し、上記のソリューションが私の場合機能しません。
zulkarnain shah

42
端末でアプリを完全に削除するには、ターミナルで「adb uninstall <パッケージ>」を実行してみてください
ミハイルシャリン

3
Android 7.0では、デバイスからアプリをアンインストールすると(デバイスのメイン画面の[アンインストール]ラベルにドラッグして)、アプリは実際には「無効」になります。設定/アプリに移動し、そこからアプリを手動で削除する必要があります(またはADBコマンドを使用します)。何回かはねますが、数回口をたどると、このAndroid 7.0のいわゆる機能を忘れてしまいます。
マイクケスキノフ2018年

325

誰かに役立つかもしれません:-

端末でテストするときに、アプリが適切にアンインストールされないことがあります。これを確認して修正するには:

  1. [設定]に移動します。
  2. アプリに移動します。
  3. アプリを選択します。(ここでは、アプリが正しくアンインストールされていないことを確認できます)
  4. 右上のオーバーフローメニューを開き、[ すべてのユーザーに対してアンインストール ]を選択します
  5. できました。アプリをインストールしてから、もう一度起動してみてください。

12
Android O開発者プレビュー3を使用すると、アプリがアプリリストに存在しないことが通知されたため、[すべてのユーザーのアンインストール]アクションを実行できませんでした。実行adb uninstall {packageName}することで問題は解決しました。
alexbchr 2017年

1
エミュレーターの場合、Ankitの答えは機能しませんでした。ランチャーからアプリを削除しましたが、システムに残っているため問題が発生しました。完全にアンインストールするには、この方法を使用する必要がありました。
くそったれ野菜、

2
thnx manアプリケーションが完全にアンインストールされないandroid oreoでこの問題に直面していました
Salman500

3
これはまさに私の問題でした、アプリはこのユーザーのためにインストールされませんでした。上記の手順でアンインストールするだけで動作しました
Bugs Happen

2
アプリが無効になりました
iamsujan

81

デバイスからアプリをアンインストールするときにこの問題に直面します(つまり、アプリを[アンインストール]オプションにドラッグします)。しかし、ここにアンインストールする適切な方法があります:

./gradlew uninstallAllコマンドを使用します。これはError: Activity class {HomeActivity} does not exist.エラーを防ぎます。

更新:

怠惰な場合は、このタスクの省略形を使用できます ./gradlew uA

または、で一般的なGradleタスクのエイリアスを定義する.bash_profileと、時間と入力を節約でき、すべてのコマンドを覚えたり、タイプミスを心配したりする必要がなくなります。これを行うことをお勧めします。


それが悪いと私はまだそれが良いと思いました。Gradleはabomination IMOです。
JJF 2017

4
これは、Android Studio 3.1 Canary 7で私のために機能した唯一のものです
NOTiFY

2
素晴らしい答え。一部のデバイスでは、アンインストールに問題があるようです。私にとっては、Xiaomi Mi Mix 2 with EU Buildです。デバイスのビルドバージョンのエラーだと思います。
Opiatefuchs

1
これでうまくいきます。./gradlew uninstallAllを実行した後
Shanison

1
2020年の初めには、これが私にとって有効な唯一のソリューションでした。
PGMacDesign

73

これは、次の場合に発生します

  • デバイス/エミュレータを接続します
  • Android Studio(AS)からアプリを実行する
  • アプリを使用/テストし、コンピューターに接続したままデバイスからアンインストールする
  • ASからもう一度アプリを実行してみてください

ASは、デバイスにまだアプリがあると考えています。

tl; dr-これを解決するには、アプリをアンインストールしてから再接続するだけでデバイスを切断できます。


11
アプリがランチャーに表示されない場合でも混乱しないでください。アプリがリストにある場合は、設定/アプリ->「すべて」を確認してください。それが私のアプリケーションの場合であり、それを削除した後、すべてが再び正常に動作しました。
ダニエル・ギルバート

1
@DanielGilbertが言ったようにランチャーに表示されない場合は、「adb uninstall package.name」で簡単にアンインストールできます。これも私にとってはうまくいきました。
マイク

これも私にとってはうまくいきました。2つのバージョンのサンプルプロジェクトを実行していました。最初のバージョンをインストールしてからアンインストールして、2番目のバージョンをインストールしました。エラーを修正するために多くの時間を無駄にしました。Androidの開発にこの種の奇妙で解決できない問題があったのはこれが初めてではありません...
くそったれ野菜

私の場合。デバイスを切断して接続する-これは私にとってうまくいきました!アプリはデバイス上にありませんでしたが、ASはアプリがまだ私のデバイスにあると考えてインストールしませんでした
Victoria Klimova

35

アプリは別のユーザーのために既にインストールされています。すべてのユーザーに対して同じアプリをアンインストールしてみてください。その後、お試しください。

または、adbコマンドの実行後に試すこともできます。

adb uninstall PACKAGE_NAME

PACKAGE_NAMEは、com.example.myappなどの完全な名前です。


これでうまくいきます!adb uninstall com.demo私のアプリ名が私の場合demo
Muhammad Ovi

com.demoがパッケージ名になります
Dipendra Sharma

3
うまくいった唯一の答え!Android Studio 3.4.2、APIレベル28
ykonda

唯一の解決策。ありがとう!
Juan Ignacio Barisich

デバイスがコマンドを介して接続されていることを確認しますadb devices
G. Ciardini

33

私は同じ問題を抱えていました、そしてこれが私がそれを修正した方法です。

Gradle>タスク>インストール> UninstallAllに移動します

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


1
これでうまくいきます。ありがとうございました。
Malwinder Singh

これも私にとってはうまくいきます。しかし、なぜ問題が発生し、どのようuninstallAllに解決するのでしょうか?ありがとう。
LiuWenbin_NO。

私も働いた!
ふわふわTレックス

これは正解です!最適かつ効果的
HatemTmi

27

名前の変更/リファクタリングの後で同じエラーが発生しました。私が行ったのはapplicationId、build.gradleファイルにproperty属性を追加し、その値をアプリケーションパッケージに設定することでした。

ではbuild.gradle

android {
defaultConfig {
    applicationId "com.example.myapp"  
  }
}

applicationIdをbuidl.gradleに追加する方法を説明してください!
realtebo 2017年

別の方法として、アプリケーションのモジュール設定にアプリケーションIDを追加することもできます
Michael Kern

19

AndroidManifest.xmlファイル内のアクティビティの名前を変更してみてください。

今それは言う:

<activity android:name="LandingActivity" >

アクティビティ名の先頭にピリオド追加してみてください:

<activity android:name=".LandingActivity" >

または、アクティビティの名前の先頭にパッケージ名追加します

<activity android:name="com.trackingeng.LandingActivity" >

また、パッケージ名にピリオドで区切られた2つのコンポーネントしかないことが問題になる場合もあります(パッケージ名は「com.trackingeng」です。より標準的なパッケージ名は「com.trackingeng.app」になります)。


2
@Siavash(ただし、正しくない場合を除く)
dcow

2
どのように@dcow?ここで受け入れられた答えは私にはうまくいきませんでしたが、これはうまくいきました。
Siavash

どれ?ドットまたは3レベルの名前を追加しますか?
realtebo 2017年

15

以下の手順に従ってくださいモバイル設定>アプリ>アプリ>その他>すべてのユーザーのアンインストールアプリをクリックします。

理由:スマートフォンに複数のユーザーがいて、そのアプリを1人だけアンインストールしたためです。

楽しい:


選択した回答にもこれを追加する必要があると思います。これは私のために働いたものです。
jasxir

13

問題が発生するもう1つの理由は、デバイス上のすべてのユーザーに対して完全に削除されていないことです。

[設定]-> [アプリ]-> [アプリ]->右上の3つの点をクリックします-> [すべてのユーザーからアンインストール]に移動します。

わたしにはできる。特に、アプリのアイコンを変更したり、AndroidManifest.xmlファイルをいじったりします。


1
これがうまくいったとは信じられません。デバイスに2つのアカウントがあり、他のユーザー用にインストールされました。
StarWind0 2017

ええ、それは少し面倒ですが、通常、あなたが変更ローディングアイコンとスタッフなどにお勧めします原因アプリが開発中である場合に発生
ロングダオ

12

私にとって、問題は、アプリがまだデバイス上にあるというAndroidStudio 考えでした。

修正するには:

  1. adbデーモンを再起動します。端末またはコマンドプロンプトで、次のように入力します。

    adb kill-server
    adb start-server
  2. アプリを起動してみてください。

  3. それでも機能しない場合は、この回答を確認してください。

確認してくださいplatform-toolsAndroidのSDKは、あなたに追加されたシステムのパス変数


11

私の場合、問題が発生した後に電話からアプリケーションをアンインストールしましたが、以下のコマンドでうまくいきました。

terminal / cmdで以下のコマンドを実行します

adb uninstall <package_name>

package_name com.example.applicationnameのようなもの次に、アプリケーションを再インストールしてみます。うまくいくはずです。


1
以前adb経由でapkをインストールしていたので、これは私にとってはうまくいきましたが、電話のアプリマネージャー経由で何らかの方法でそれをアンインストールすると、いくつかのアプリトレースが残りました。
1

9

私にとって、Android 6でアプリをアンインストールすると、デバイスから削除されるのではなく、実際に無効になりました。

設定>アプリ>アプリをクリックしてアンインストール

これは私のためにそれを修正しました


うまくいきましたが、もう少しポイントがあります。adbを介してそれを削除した場合、問題が解決されたことを保証するものではありません。このパッケージがadb pmを介して表示されない場合はイベントです。手で行う必要があります。[設定]-> [アプリ]で見つけ、[すべてのユーザーに対して削除]を選択します。その後、再度インストールできます
Silwester

9

以下のコマンドは私のために働きました。アプリの部分的なアンインストールもこれを引き起こします。

terminal / cmdで以下のコマンドを実行します

adb uninstall <package_name>

次に、アプリケーションを再インストールしてください。うまくいくはずです。


7

デバイスに複数のプロファイルが設定されている場合、アプリはすでに他のプロファイルのいずれかに存在している可能性があることに注意してください。

すべてのプロファイルからアプリをアンインストールすると、問題が解決しました。


6

私にとってそれは非常に特定の問題でした、私はアプリケーションをテストするためにLg g5を持っています、そして私のアプリデータをリセットするために電話でそれをアンインストールしました、しかし電話はアプリをアンインストールしない「素晴らしい」機能を持っていますすぐに、1日以内に再インストールできます。そのため、アプリはインストールされましたが、完全に機能する電話からアプリを削除した後、使用できませんでした(無効)。


私のために働いた。LG G6にも同じ「機能」があります。無効にする方法が見つかりませんでした。
2018年

6

私の場合、起動しようとしたアプリがデバイスの別のユーザー用にインストールされていたためです。[設定]-> [アプリ(すべてのアプリ)]に移動し、アプリを選択します。オーバーフローメニューをクリックし、[すべてのユーザーからアンインストール]を選択します。これで問題が解決するはずです。


これもeで発生し、[設定]> [アプリと通知]> [アプリ情報]に移動する必要がありました。「すべてのユーザーからアンインストール」して、再度インストールする必要がありました。
ラッキールケイン2018年

同じ問題に遭遇しましたが、おそらくこのソリューションでも答えを更新する必要があります
Panduka DeSilva '26

このエラーは、プロジェクトで複数のビルドタイプを構成したときに発生しました。
Rahul Rastogi

6

同じ問題に直面しているAndroid Studio 3.2 Beta 5を使用しています

に行く

File -> Invalidate Caches / Restart...

私のために解決された問題


6

この問題が発生したとき、私は常にこの解決策を試し、それが機能します。

Instant Run disable 

Build -> Clean Project

File -> Invalidate Caches / Restart

しかし、私はこれに例外を見つけました。この解決策は私にはうまくいきません。次に、問題はエミュレーターの現金であることがわかります。私はちょうど行うWipe dataCold boot now、問題が解決されます。

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


5

誰かが私の問題に遭遇し、他のソリューションでうまくいかない場合に備えて、Amazonランチャーの統合をデバッグしながら、FireTVのadbからアクティビティを開始しようとしました。ただし、私のプロジェクトには60の異なるビルドバリアント(マルチプラットフォーム、マルチアプリプロジェクト)があり、ランタイムパッケージ(およびクラスパス)がapplicationIdと異なるため、ApplicationIdはどのクラスパスとも一致しませんでした。

走ろうとしてた adb shell am start -n com.myappid.example.packageone.packagetwo/com.myappid.example.packageone.packagetwo.MySplashActivity

(もちろんcom.runtimepath.example 、build.gradleと実行時に別のapplicationIdのチャレンジを追加したので、多くの組み合わせを試しました)

最終的に助けになったのはこの投稿ですhttps://stackoverflow.com/a/36255727/5970652

別のフォーマットを明らかにしました! com.myappid.example/com.runtimepath.example.packageone.packagetwo.MySplashActivity

したがって、別のランタイムクラスパスがある場合は、スラッシュの前にbuild.gradle applicationIdを指定し、その後にランタイムクラスパスを指定してみてください。

これらの値は、logcatに記録する場合はBuildConfig.APPLICATION_IDthis.getLocalClassName()それぞれから取得することもできます。


1
これはまさに私の問題でした!しばらくイライラしていましたが、スラッシュの前にアプリのパッケージ名を入れ、スラッシュの後に完全に修飾されたパッケージ/クラス名を入れたら、うまくいきました。
チャドシュルツ

4

私も同じ問題を抱えていましたが、上記の解決策はどれもうまくいきませんでした。問題は、上記のエラーが発生したために、Titanium Backupを介して実行しようとしていた特定のアプリをフリーズしたことです。私はEclipseとAndroid Studioの両方で試しました。

気が付いた後、私はアプリをアンインストールして、再度実行しました。

問題が解決しました :-)


4

私の場合に役立つトリックを共有したいと思います。デバイスからアプリケーションをアンインストールしましたが、clean / rebuild / Android Studioの再起動操作で何も解決しませんでした。

Android Studioは、アプリケーションがまだデバイスにインストールされていると見なしてデプロイしないため、ADBを使用してインストールを強制できます。

adb install -r <your_application_from.apk>

ここで-r、データを保持したままアプリを再インストールすることを意味します。


これは私のために働いた唯一のものですありがとう!
Hugo

4

Samsung Galaxyを持っています。上記の設定で検索しても、アプリの設定にまったく表示されなかったため機能しませんでした。

検索フィールドにアプリの名前を入力して、スマートフォンでアプリケーションを見つけました。「Work」(Mobile @ Workを使用)プロファイルにあることに気付き、削除しました。プロファイルの設定は、[設定]-> [仕事用プロファイル]-> [アプリ]で確認できます。

これが他の多くの回答が設定で見つかると述べたのと同じ方法でそれを見つけられないかもしれない誰かを助けることを願っています。


1
OMGありがとう、私の日を救った。fckn samsungと同じ問題
Peter

4

Android Studio 3.5.1でこの問題に直面しました。この問題を解決するのに1日かかりました。キャッシュのクリーニング、再起動、パッケージ名の変更など、すべてを試しました。したがって、上記のいずれかが機能しない場合は、これを試してください。

gradle> Tasks> Install> UninstallAllに移動するだけです

ここにリンクがあります: エラータイプ3:アクティビティクラス{...}は存在しません


4

モバイルのゲストユーザーにアプリケーションがインストールされることがあるので、ゲストを切り替えてアプリケーションをアンインストールしてみてください。

さらに、次のコマンドを実行して、アプリケーションadbアンインストールパッケージ「Your package Name」をアンインストールしてください。


3

過去にも同じ問題に直面しました。このような問題は、プロジェクト内でのファイルの名前変更、移動などのリファクタリングを実行したときに実際に発生します。

ビルド->クリーンプロジェクト

プロジェクトをクリーンアップすると、.classファイルが削除され、プロジェクトが再コンパイルされます。基本的に、プロジェクトの再構築を強制します。

時々、そのような種類のエラーはクリーニングプロジェクトでクリーニングされず、デバイスからアプリをアンインストールして(エミュレーターまたは物理的なもののいずれか)、アプリを再度実行してみます。これがあなたを助けることを願って、それは私を50%倍助けます。

注:- エラーが発生した場合は常に、Googleにアクセスしないでください。これが機能しない場合は、プロジェクトをクリーンアップして、Googleの機能を実行してください。


3

同じ問題があり、アクティビティランチャーをリファクタリングして解決しました。クラス名を変更するだけで機能します。


3

同様の問題が発生しました。以下の手順に従ってください。
それはあなたを助けるでしょう:

1-プロジェクトをクリーンアップします
2-ビルドディレクトリを削除します
3- Android Studioを再起動します
4-プロジェクトを再ビルドします
5-正常に実行されます。

ありがとう


3

LGスタイラスを使用していますが、テスト用電話でアプリケーションが完全に削除されません。[設定]-> [アプリケーション]で、注釈をオフにしてデバッグアプリ(ASでインストールしてデバッグしようとします)を見つけました。スマートフォンからアプリを削除すると、エラーが消えました。


これは私に対する答えではないようです。
mpaskov 16

3

私の場合、次の理由がありました:

私には2人のユーザーがいます。私とゲストです。アプリは両方にインストールされていましたが、最初は削除されていました。

ゲスト画面に切り替えてアプリを削除すると、アプリはインストールされました。

これが誰かを助けることを願っています:)

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