簡體   English   中英

無法識別啟動活動:未找到默認活動

[英]Could not identify launch Activity: Default Activity not found

我是android新手,遇到了一個問題。 控制台說“無法識別啟動活動:未找到默認活動”。 我已經添加

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

在清單中。 而且我已經嘗試過使緩存無效/重新啟動,但仍然沒有用。 並且包含主要活動的類文件在android studio中變為綠色。 我不知道那是什么意思。 這是我的清單文件。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mrrobot.mycoolweather" >
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <Activity       android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </Activity>
</application>

</manifest>

chooseAreaActivity 是我想用作啟動器活動的活動。 在此處輸入圖像描述

對於清單中的主要活動,您必須將其添加到類別LAUNCHER (啟動應用程序上的第一個活動):

<activity
    android:name=".MainActivity"
    android:label="YourAppName"
    android:theme="@style/AppTheme.NoActionBar" >
      <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

對於其他活動,您必須將類別更改為DEFAULT

<activity
    android:name=".OtherActivity"
    android:theme="@style/AppTheme.NoActionBar" >
    <intent-filter>
            <action android:name="package.OtherActivity" />

            <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

檢查這個活動和這個開始另一個活動

所以你的代碼是:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mrrobot.mycoolweather" >
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".activity.ChooseAreaActivity"
        android:label="@string/app_name" >
          <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
    </activity>
</application>

</manifest>

有時只需重新啟動 Android Studio 即可解決

單擊“文件”,然后單擊“使緩存無效”


我有幾次“未找到默認活動”問題,我可以解決重新啟動我的 android Studio 的問題。

雖然這個問題有點過時,但我會在所有給定的答案中添加以下內容:

對於多模塊項目,請仔細檢查您是否修改了與您嘗試運行的Configuration相對應的Manifest

遇到了同樣的問題,花了 20 分鍾才發現我試圖運行錯誤的配置(在ModulbeB中有一個Application ,同時認為我正在從ModuleA運行一個)。

有時您正在處理其他模塊默認可運行模塊更改,因此您必須更改它。 在此處輸入圖像描述

如果您在升級 IDEA、升級 Android Studio 版本或生成新 APK 后發現該錯誤,您可能需要刷新 IDE 的緩存。

File -> Invalidate Caches / Restart...

在您的清單文件中聲明了錯誤的元素名稱(活動更改為活動)

<Activity       android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </Activity>

將其更改為:

 <activity       android:name="com.example.mrrobot.mycoolweather.activity.ChooseAreaActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

我的項目有這些問題:

  • 未找到默認活動

  • xml 智能感知不工作

  • kotlin 標准函數未檢測到

我上面的所有問題都通過在主路徑中刪除 Android Studio 3.3 的系統緩存來解決,它對我來說很好,步驟:

  1. 退出 Android Studio

  2. 轉到路徑 > C:\Users\YOUR_WINDOW_USER_NAME.AndroidStudio3.3\system

  3. 然后你有一個 \caches 文件夾,刪除這個緩存文件夾

  4. 現在打開 Android Studio 並加載您的項目

為我工作..我浪費了幾個小時來解決這個問題,最后它以這種方式得到了解決。

退出你的 android studio IDE。 然后在 .AndroidStudio3.2 文件夾中找到“caches”文件夾。

地點

C:\Users\YOUR_USERNAME\.AndroidStudio3.2\system\caches

例如。

假設說 YOUR_USERNAME 被稱為 Admin。

C:\Users\Admin\.AndroidStudio3.2\system\caches

刪除緩存文件夾並啟動您的 android studio IDE。

我在這里嘗試過解決方案和其他問題

  • 清理 & 重建 & 無效並重新啟動
  • 確保活動將 LAUNCHER 作為類別
  • 刪除 Android 緩存文件夾

最后,活動標簽有<activity android:name="com.exmaple.todo.MainActivity" />當我將其更改為<activity android:name=".MainActivity" />應用程序工作。

如果其他解決方案不起作用,我希望它對您有所幫助。

如果您的活動位於不同的模塊中(例如 ':library),並且您忘記在 :app 模塊的 dependencies{} 腳本塊中指定子項目,則不會導入 :library 的清單以及它聲明的活動。

dependencies {
   api project (':library')

您可以使用以下 Android Studio 菜單命令檢查是否所有活動都顯示在您的 app-debug.apk 中:

->構建->分析APK->app-debug.apk

現在打開 AndroidManifest.xml 並檢查其活動聲明。

當我以某種方式將 Android Studio 升級到2021.1.1.23時,我的運行配置從app切換到models ,產生了這個錯誤。 切換回app為我解決了這個問題。

我的主要活動未在 Android 清單文件中聲明。 這就是出現該錯誤的原因。 出現此錯誤是因為 Android Manifest 文件的聲明問題。 請檢查一下。 :D

這也發生在我身上,我花了很長時間才弄清楚原因,但我發現的一個奇怪的錯誤是,如果你在沒有調試模式的情況下在代碼中運行帶有斷點的應用程序,則會導致此錯誤發生。

現在快速修復:僅將斷點用於調試模式。

檢查您的 AndroidManifest.xml 中的重復初始化活動

像下面這樣:

        <activity android:name=".nim.qiaqia.lota.LotaProduct"/>
        <activity android:name=".nim.qiaqia.lota.LotaOrderDetail"/>
        <activity android:name=".nim.qiaqia.main.activity.RechargeListLotaActivity"/>
        <activity android:name=".nim.qiaqia.lota.MiningCoinLota"/>
        <activity android:name=".nim.qiaqia.lota.LotaOrderDetail"/>

這也可能導致“未找到默認活動”。因此,將其刪除並查看。它的工作原理!:)

在我的情況下,android manifest 是正確的。 我試圖使緩存無效並重新啟動,但沒有奏效。 然后重建項目,它也沒有工作。

然后我意識到昨晚我添加了一個新庫來構建 Gradle,它是這樣的: implementation 'com.yalantis:eqwaves:1.0.1'刪除它之后一切正常。

提示: “始終跟蹤您在項目中所做的事情,否則您最終會浪費時間”

如果您只啟用了通過 app bundle 構建應用程序,那么當您嘗試將其安裝為默認 APK 時也可能會出現此錯誤。 將部署選項從 App Bundle 更改為 APK ,一切順利。

在更改啟動活動添加intent-filter但未將其導出后,我在 android 12+ 中收到此錯誤。
所以不要忘記。

           
android:exported="true"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM