2016-07-06 2 views
0

В страхе быть тем парнем, который задает уже заданный вопрос ..... * Я просмотрел различные решения этой проблемы, и никто, кажется, не решает мою проблему , У меня просто кнопка, с которой я хотел бы начать работу с картой.ActivityNotFoundException: Активность не обработана 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 } 

Любая помощь по-настоящему оценили, поскольку мне потребовались годы, чтобы забраться так далеко, и это всего лишь последний камень преткновения. Я был бы рад предоставить любые другие части кода, которые могут быть релевантны для решения!

спасибо!

ответ

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 пытается найти Activity в установленном приложении, которое знает, как бороться с ACTION "mf.tutorial.MapsActivity". Их нет, поэтому вы получите ActivityNotFoundException.

Что вы хотите сделать, так это запустить Activity явным КОМПОНЕНТОМ, а НЕ с помощью неявного ДЕЙСТВИЯ. Делайте это так:

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

Используя конструктор 2-аргумент позволяет установить компонент (в данном случае, MapsActivity) в явном виде. Параметр context должен быть ссылкой на вызов Activity.

Смежные вопросы