我正在构建一个应用程序,当我的应用程序中按下按钮(实际上是图像)时,它会打开谷歌地图活动。 代码编译,但应用程序被强制关闭
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 :(得分: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);
}
}
});
}