Android的谷歌地图API V2空白屏幕(Android Google Map API V2 B

2019-07-19 14:03发布

您好我最近跟着Vogella对谷歌地图API第2版教程。 该代码是与他的相似。 但由于某些原因,地图显示空白和logcat的没有显示出任何差错。 我也跟着这个视频来获得SHA1指纹后来我把清单文件中的API密钥。 我用调试密钥库C:\用户\ UserName.android \ debug.keystore这也是设在Eclipse中默认的调试密钥库 - >窗口 - >首选项 - > Android的 - >生成。

我也产生了新的API密钥,它仍然无法正常工作。

清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.barcodelibrary"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="15" />

    <permission
        android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-feature android:name="android.hardware.camera.flash" />

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".HomeActivity"
            android:label="@string/title_activity_home" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <activity android:name=".ScanActivity"/>
        <activity android:name=".MapActivity"/>
        <activity android:name=".BarcodeHelper"/>
        <activity android:name=".JsonHelper"/>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="my api key" />
    </application>

</manifest>

这是在地图的活动我的布局文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MapActivity" >

        <fragment
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment" />

</RelativeLayout>

这是我的地图活动:

public class MapActivity extends Activity { static final LatLng HAMBURG = new LatLng(53.558, 9.927); static final LatLng KIEL = new LatLng(53.551, 9.993); private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map); map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) .getMap(); Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG) .title("Hamburg")); Marker kiel = map.addMarker(new MarkerOptions() .position(KIEL) .title("Kiel") .snippet("Kiel is cool") .icon(BitmapDescriptorFactory .fromResource(R.drawable.ic_launcher))); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_map, menu); return true; } }

谢谢!

Answer 1:

You have couple of permission issues with your manifest. First, in the following you need to replace the package name with your package, you also need to as a uses-permission

 <permission
        android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

per your package name, should be --

<permission
          android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
          android:protectionLevel="signature"/>
<uses-permission android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>

Finally, you seem to be missing the following permissions from the specifying permissions section of the Getting Started guide --

<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"/>


Answer 2:

对我来说,原来,我没有启用Google Maps Android API v2 。 我们使用另一个谷歌地图API,我认为是一样的。



Answer 3:

您必须运行在amulator您的应用程序有以下配置.... 1)谷歌API(x86的系统映像)2)选择复选框以表示使用主机GPU ..



Answer 4:

我已经有了与地图类似的问题。 固定所有的lib和关键问题后,我只看到了“谷歌”标有白色的筛网。 问题是,我把MapFragmentScrollView 。 取出后的ScrollView的一切工作正常。 我可以看到地图。



Answer 5:

如果它不工作,虽然,按照此

在地图上解决黑屏问题:您好,我已经通过这个黑屏了很长一段时间,尝试了所有的解决方案u能imagine.Now它解决了与步骤是:

通过的所有步骤1 -进入本教程仔细。

2,如果黑屏还是一样,删除您调试存在在C密钥存储文件:\用户\ youUser.android \ debug.keystore < - 删除此文件

3,在IDE文摘重建你的应用程序,所以它会自动重新创建该文件。 4,精选文摘上去窗口 - >首选项 - > Android的 - >构建复制新产生的SHA1,然后按照正常的密钥生成步骤。 您的真实设备上的5运行,我希望你会看到你的地图:)



Answer 6:

我不得不正确的SHA-1证书指纹添加到我的谷歌开发者控制台。

  1. 显示当前的指纹: keytool -list -keystore ~/.android/debug.keystore

  2. 复制指纹(例如48:6F:55:B7:C5:E4:54:E1:29:D5:E1:E1:E2:A8)

  3. 将它添加到您的凭据,在那个特定的应用程序谷歌开发者控制台



Answer 7:

设置自定义keysote相同的默认一个(Eclipse中)。 而且,因为它在文档据说登记在谷歌控制台中的API密钥。



Answer 8:

Android的工作室:确保你把你的钥匙在正确的层次结构



Answer 9:

许多人忘了激活谷歌地图API的Android V2在开发者控制台 ,我激活它,瞧,我的地图出现。



Answer 10:

就我而言,这是一个现有的应用程序,我从GitHub克隆,并没有改变API密钥。 什么工作对我来说,是让我签名证书的SHA-1。 按照这些短指令得到SHA-1指纹。

然后,我的主要开发者加入我的SHA-1指纹授权包他的相关API密钥这里 。 然后,我以同样的方式再次做了构建和它的工作。



Answer 11:

我在其他岗位的答案是什么实际工作对我来说,我贴的应用程序签名证书 SHA-1



Answer 12:

我有一个类似的问题,在调试是好的,但空白屏幕上发布。 API密钥被罚款。

什么工作是替换这样的:

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/google_maps_key" /> 

这样

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXGNc" /> 

直接添加您的API密钥不用的ressource串



文章来源: Android Google Map API V2 Blank Screen