Получение ActivityNotFoundException на определенном устройстве для открытия Google Maps - PullRequest
2 голосов
/ 22 июня 2011

В моем приложении я открываю Google Maps со следующим кодом.

String map_url = "geo:0,0?q=";
map_url += String.valueOf((double)latitude / 1E6) + ",";
map_url += String.valueOf((double)longitude / 1E6);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity");
intent.setData(Uri.parse(map_url));
startActivity(intent);

И он отлично работает на многих устройствах. Но сегодня я увидел отчёт ACRA.

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.google.android.apps.maps/com.google.android.maps.MapsActivity}; have you declared this activity in your AndroidManifest.xml?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
    at android.app.Activity.startActivityForResult(Activity.java:2817)
    at android.app.Activity.startActivity(Activity.java:2923)

Устройство Vortex с операционной системой OS2.2.2. Исключение ясно говорит мне, что мне нужно объявить "com.google.android.maps.MapsActivity" в манифесте. Вопрос в том, что я этого не делал, но он работает на многих устройствах, поэтому результат не является согласованным: почему я получаю исключение на этом устройстве, а я не получаю на многих других устройствах?

Пожалуйста, не говорите: «Вы должны добавить это, чтобы проявить». В этом случае, скажите, пожалуйста, почему некоторые (не все) устройства работают без исключения.

Заранее спасибо.

1 Ответ

3 голосов
/ 22 июня 2011

com.google.android.maps - это другое приложение / пакет, поэтому его объявление в AndroidManifest не даст вам того, что вы хотите.Я полагаю, что при установке Android не установлено приложение «Карты», и, следовательно, не может быть запущено намерение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...