[英]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>
對於清單中的主要活動,您必須將其添加到類別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>
如果您在升級 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 的系統緩存來解決,它對我來說很好,步驟:
退出 Android Studio
轉到路徑 > C:\Users\YOUR_WINDOW_USER_NAME.AndroidStudio3.3\system
然后你有一個 \caches 文件夾,刪除這個緩存文件夾
現在打開 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。
我在這里嘗試過解決方案和其他問題
最后,活動標簽有<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.