![](/img/trans.png)
[英]ActivityNotFoundException: No Activity found to handle Intent
[英]ActivityNotFoundException: No Activity found to handle Intent
擔心成為那個已經提出了問題的人..... *我仔細研究了這個問題的各種解決方案,但似乎沒有一個能解決我的問題。 我只是有一個想要啟動地圖活動的按鈕。
以下是活動:
public void OnclickButtonListener() {
button_map = (Button)findViewById(R.id.button);
button_map.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent mapintent = new Intent("mf.tutorial.MapsActivity");
startActivity(mapintent);
}
});
並在清單文件中處理意圖:
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
返回的錯誤如下所示:
ActivityNotFoundException: No Activity found to handle Intent { act=mf.tutorial.MapsActivity }
真的很感激任何幫助,因為我花了很長時間才走到這一步,這只是最新的絆腳石。 我很樂意提供代碼中與解決方案有關的任何其他部分!
非常感謝你!
我假設MapsActivity是您apk中的一項活動? 在這種情況下,您可以使用Intent intent = new Intent(context, MapsActivity.class);
您使用的Intent版本用於運行具有針對特定操作的Intent過濾器的活動。 通常用於訪問系統應用程序,例如相機應用程序或撥號器。
當您嘗試啟動Activity
,您可以執行以下操作:
Intent mapintent = new Intent("mf.tutorial.MapsActivity");
這將創建一個Intent
,並設置操作在Intent
到"mf.tutorial.MapsActivity"
。
當您調用startActivity()
,Android會嘗試在已安裝的應用程序中查找“ Activity
,該應用程序知道如何處理ACTION "mf.tutorial.MapsActivity"
。 沒有,所以您得到ActivityNotFoundException
。
您要做的是通過顯式的COMPONENT而不是隱式的ACTION啟動Activity
。 這樣做:
Intent mapintent = new Intent(context, MapsActivity.class);
startActivity(mapintent);
使用2參數構造函數可以顯式設置COMPONENT(在本例中為MapsActivity
)。 參數context
應該是對調用Activity
的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.