2016-07-06 118 views
0

害怕成爲那個問那個已經被問過的人的問題..... *我已經研究了這個問題的各種解決方案,而且似乎沒有一個能夠解決我的問題。 我只是有一個按鈕,我想開始一個地圖活動。ActivityNotFoundException:沒有找到處理意圖的活動

下面是活動:

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 } 

任何幫助真的很感激,因爲它已經花了我很多時間才能得到這麼多,這只是最新的絆腳石。我很樂意提供可能與解決方案相關的任何其他代碼部分!

非常感謝!

回答

1

我假設MapsActivity是一個在你的apk中的活動?在這種情況下,您將使用Intent intent = new Intent(context, MapsActivity.class);您使用的Intent版本用於運行具有針對特定操作的意圖過濾器的活動。通常用於訪問相機應用程序或撥號程序等系統應用程序。

1

當試圖啓動您Activity,你這樣做:

Intent mapintent = new Intent("mf.tutorial.MapsActivity"); 

這將創建一個Intent並設置在Intent"mf.tutorial.MapsActivity"的動作。

當您撥打startActivity()時,Android會嘗試在安裝的應用程序中找到一個知道如何處理ACTION "mf.tutorial.MapsActivity"Activity。沒有任何,所以你得到ActivityNotFoundException

你想要做的是通過明確的COMPONENT啓動Activity,而不是通過隱式的ACTION啓動。是這樣做的:

Intent mapintent = new Intent(context, MapsActivity.class); 
    startActivity(mapintent); 

使用2參數的構造函數允許你設置組件(在這種情況下,MapsActivity)明確。參數context應該是對呼叫Activity的引用。

相關問題