2016-04-17 4 views
0

Я создаю приложение, которое открывает активность карты Google, когда в моем приложении нажата кнопка (на самом деле изображение). Код компилируется, но приложение получает вынужден закрытПриложение закрывает силу

JAVA

public class MainActivity extends AppCompatActivity { 
private ImageView button; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

button= (ImageView)findViewById(R.id.button); 
button.setOnClickListener(
     new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Uri gmmIntentUri = Uri.parse("geo:0,0?q=workshop%20near%20me"); 
       Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
       mapIntent.setPackage("com.google.android.apps.maps"); 
       startActivity(mapIntent); 
      } 

      } 
); 

} 

}

+0

Что такое трассировка стека? –

+0

Добавлены метаданные в mainfest.xml и complie google-play-service-versio: 8. + добавлен в градиент построения. Теперь град показывает 3 ошибки –

ответ

0

Согласно документации: «Если система не может идентифицировать приложение, которое может реагировать на намерения, ваше приложение может произойти сбой. По этой причине вы должны сначала убедиться, что приложение-получатель установлено до того, как вы представите пользователю один из этих намерений ».

Попробуйте проверить, что приложение установлено, который может обрабатывать намерение первого:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    button= (ImageView)findViewById(R.id.button); 
    button.setOnClickListener(
     new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Uri gmmIntentUri = Uri.parse("geo:0,0?q=" + Uri.encode("workshop near me")); 
       Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); 
       mapIntent.setPackage("com.google.android.apps.maps"); 
       if (mapIntent.resolveActivity(getPackageManager()) != null){ 
        startActivity(mapIntent); 
       } 
      } 
     }); 
} 
+0

Используется вышеприведенный код, но все равно заставляет закрыть –

+0

Как упоминает выше Джесси Бусс, было бы очень полезно увидеть трассировку стека –

1

Я просто решил. Убрали градирную сборку и восстановили град после добавления поддержки android-play-сервиса: 8. +

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