该应用程序被关闭

时间:2016-04-17 18:29:36

标签: java android google-maps google-maps-android-api-2

我正在构建一个应用程序,当我的应用程序中按下按钮(实际上是图像)时,它会打开谷歌地图活动。 代码编译,但应用程序被强制关闭

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);
            }

            }
);

}

}

2 个答案:

答案 0 :(得分:1)

我刚刚解决了。添加complie android-play-service后,清理了gradle构建并重建gradle:8。+

答案 1 :(得分: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);
                }
            }
        });
 }