gpt4 book ai didi

java - Android:Google Maps v2 API 在 Android 4.0 及更高版本上加载空白 map

转载 作者:行者123 更新时间:2023-12-01 14:19:49 33 4
gpt4 key购买 nike

我在 Android 项目中使用 Google Maps Android v2。

我在 3 台设备上进行了测试:HTC Vivid (4.0.3)、Asus Nexus 7 (4.2.2) 和 Galaxy S2 (2.2)。该 map 仅使用上述信息显示在 Galaxy S2 上,所以我知道一切都应该正常工作。

问题:我需要做什么来添加兼容性,或者只是修复更高 API 版本的错误?

我已完成以下操作:

  • 生成 keystore (调试 keystore 和自定义 keystore )并将其 SHA-1 代码和包名称注册到 Google API 控制台。我已经使用两个 API key 尝试了该程序,并且都返回了相同的空白屏幕和错误。在 Debug模式之外使用该程序表明已尝试访问控制台中报告日志中的 API。
  • 导入了 android-support-v4.jar 文件
  • 导入了 google-play-services_lib 项目文件夹,将其设置为库,并将我的项目配置为使用该库。
  • 使用以下代码设置我的“my_map.xml”布局

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment" />
  • 使用以下代码设置我的 Activity 类

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

    import android.os.Bundle;
    import android.view.Menu;

    public class MapActivity extends android.support.v4.app.FragmentActivity {

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

    GoogleMap map =
    ((SupportMapFragment)getSupportFragmentManager()
    .findFragmentById(R.id.map)).getMap();
    map.addMarker(new MarkerOptions().position(new
    LatLng(34.739849,-92.307129)).title("SwagString"));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.map, menu);
    return true;
    }
    }
  • 我拥有所有必需的权限
  • 我已将 key 的元数据添加到我的 AndroidManifest.xml

  • 权限:

    <permission
    android:name="com.uaex.droughtadvisor.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

    <uses-permission android:name="com.uaex.droughtadvisor.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  • 元数据

    <meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
  • 在 4.0 及更高版本的设备上运行代码时,我收到此错误:

    Failed to load map. Error contacting Google Servers.

最佳答案

我不确定它是什么,但我让它工作了。最初我的目标是 2.2,然后我在 SDK 管理器中下载了其他版本并尝试了这些版本(只有 4.0.3 和 4.2.2,因为这些是我的测试设备的版本)。我瞄准了这些并将它们安装在各自的设备上并且它起作用了。回到 2.2 后,它们仍然可以工作,而最初却不能。不知道这里发生了什么,但我现在很好。

关于java - Android:Google Maps v2 API 在 Android 4.0 及更高版本上加载空白 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17707247/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com