【问题标题】:GoogleMap Crashes android Java android 4.3谷歌地图崩溃 android Java android 4.3
【发布时间】:2014-03-21 11:29:55
【问题描述】:

我必须在 android 模拟器中显示谷歌地图,但它崩溃了,即使每次我下载谷歌地图的代码时,我都会放置 api 密钥,所有其他库,但应用程序崩溃,这是我当前的代码。

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
    GoogleMap map;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
        map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

        LatLng latLng = new LatLng(13.05241, 80.25082);
        map.addMarker(new MarkerOptions().position(latLng).title("Raj Amal"));
    }}

但是当map.setMapType(GoogleMap.MAP_TYPE_SATELLITE); 及以下是我的日志猫时应用程序崩溃

    03-21 07:24:33.904: E/AndroidRuntime(1039): FATAL EXCEPTION: main
    03-21 07:24:33.904: E/AndroidRuntime(1039): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.amal.googlemap/com.amal.googlemap.MainActivity}: java.lang.NullPointerException
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.os.Handler.dispatchMessage(Handler.java:99)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.os.Looper.loop(Looper.java:137)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.ActivityThread.main(ActivityThread.java:5103)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at java.lang.reflect.Method.invokeNative(Native Method)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at java.lang.reflect.Method.invoke(Method.java:525)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at dalvik.system.NativeStart.main(Native Method)
    03-21 07:24:33.904: E/AndroidRuntime(1039): Caused by: java.lang.NullPointerException
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at com.amal.googlemap.MainActivity.onCreate(MainActivity.java:18)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.Activity.performCreate(Activity.java:5133)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
    03-21 07:24:33.904: E/AndroidRuntime(1039):     ... 11 more

【问题讨论】:

  • 试试这个map.setMapType(MAP_TYPE_SATELLITE); 而不是map.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
  • 错误 MAP_TYPE_SATELLITE 无法解析为变量
  • 地图为空。还要在初始化 GoogleMap 对象之前检查 google play 服务的可用性
  • 任何经过验证的带有纬度/经度的谷歌地图教程
  • google 地图将无法在模拟器中运行,您将在模拟器配置中进行更改以在其中运行 google 地图。在谷歌上搜索。

标签: java android eclipse google-maps


【解决方案1】:

你应该这样实现

int status = GooglePlayServicesUtil
            .isGooglePlayServicesAvailable(youractivity.this);

    if (status == ConnectionResult.SUCCESS) {

        setUpMapIfNeeded();

    } else {
        int requestCode = 10;
        Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, youractivity.this,
                requestCode);
        dialog.show();
    }

如需设置Google Play Services Lib,请转至official docs

【讨论】:

【解决方案2】:

可以在模拟器中显示谷歌地图,您必须在没有 google api 的情况下创建 avd 并安装 Google_Play_services_4.0.31.apk 和 com.android.vending.apk(google play store) 然后运行您的应用程序

如果有任何问题,请告诉我,如果工作正常,请选择我的答案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    相关资源
    最近更新 更多