“致命异常:主”,并在模拟器“谷歌Play服务过时”(“Fatal Exception: main”

2019-10-18 10:06发布

我是新来的Android,我试图开发一款Android应用,包括谷歌地图。 该应用程序是在模拟器上工作正常,直到我决定更新谷歌从版本7-9播放服务。

我现在得到我以前也遇到过同样的错误(“谷歌Play服务,是过时的......”),加上一个“致命异常:主”的错误。 以下是我在logcat中得到:

http://imageshack.us/a/img11/8117/y1mq.png

如果我正确读取logcat中,错误的是在MapTabActivity但我不知道,如果错误是由谷歌造成的播放服务是过时的或者如果它是别的东西......

更新谷歌Play服务之前,应用程序正在与仿真器

  • 的Nexus 4装置
  • 的Android 4.2.2(API LVL 17)
  • ARM CPU
  • 主机GPU选择

我还必须安装com.android.vending.apk和com.google.android.gms.apk这是建议在这个其他职位。

我还添加必要清单中的许可,并申请了它也包含在清单中的API密钥。

谁能帮我? 这里的MapTabActivity及其相应的XML。

MapTabActivity.java

package com.dissertation.closethedoordiss;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;

public class MapTabActivity extends FragmentActivity {

private GoogleMap mMap;
private static final LatLng BRISTOL = new LatLng(51.455083,-2.586903);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maptab);


    mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapView)).getMap();
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(BRISTOL, 13));
}

public void onClick_addretailer (View view) {
    startActivity(new Intent("com.closethedoordiss.AddRetailerActivity"));
}  
}

activity_maptab.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

  <fragment
        android:name="com.google.android.gms.maps.SupportMapFragment" 
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />



  <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:src="@android:drawable/ic_menu_add"
        android:onClick="onClick_addretailer"
        android:contentDescription="@string/add_button" />

</RelativeLayout>

在此先感谢提供任何帮助。

Answer 1:

我已经找到了运行谷歌Android的地图API V2的唯一方法是在物理设备上。

我正在我在三星Galaxy S二重奏应用与Android 4.0.4和地图正确显示。

尝试了多种解决方案,包括测试几个仿真器的配置和安装不同的APK之后,我相信克服“谷歌Play服务已过时”最简单的方法,当涉及到使用模拟器上谷歌地图API v2的问题是开发/测试在物理设备上。

希望这可以帮助。



Answer 2:

我有这个问题很多次,我已经找到了几个方法来解决这个问题。 最有可能是您的应用程序引用Play服务不匹配给你有设备,在这种情况下是在模拟器上什么。 这可能会发生,因为谷歌播放(或谷歌播放服务)没有安装在模拟器上。 检查这个SO发布更多信息。 如果已安装,则可能需要更新。 您可以通过从头开始安装,如果内置的更新不起作用更新。

如果您使用的是谷歌Play服务,因为库项目,您可能需要更新您的谷歌Play服务库。 这是我做的:

  • 打开SDK管理器,看看是否有更新的谷歌播放服务
  • 如果有,请下载
  • 在Eclipse中,删除旧的播放服务项目,并导入新的一个
  • 重新添加新的项目作为参考

如果你不使用谷歌Play服务,因为库项目,或者如果你alaready更新,然后不顾一切我上面说:)

一旦你的设备/仿真器和正在使用的Play服务库的相同更新版本的Eclipse项目,那么你应该是好去!



文章来源: “Fatal Exception: main” and “Google Play services out of date” on emulator