Google地图在模拟器上显示,但不在设备上显示

时间:2015-12-15 14:38:41

标签: android google-maps android-studio android-emulator

我写了一个基本的地图应用程序,可以用AndroidStudio轻松实例化。片段在另一个自定义布局中加载的唯一区别。

package com.wayl.activities;

import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;

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 com.google.android.gms.maps.model.MarkerOptions;

import com.wayl.R;

public class MapsActivity extends AppCompatActivity {

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

        FragmentManager myFragmentManager = getSupportFragmentManager();
        SupportMapFragment mapFragment = (SupportMapFragment) myFragmentManager.findFragmentById(R.id.map);
        GoogleMap mMap = mapFragment.getMap();

        // Add a marker in Sydney and move the camera
        LatLng sydney = new LatLng(-35, 152);
        mMap.addMarker(new MarkerOptions().position(sydney).title("Marker near Sidney"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
    }
[...]

如上所述,该应用程序在AVD中完美运行,但无法使其在真实设备上运行。它只显示一个空的地图占位符,还有彩色的Google徽标。但没有标记,没有网格,没有按钮,没有别的。

为什么我认为它应该有效:

  • 网络,wifi,还可以,在手机上和AVD一样

  • The OpenGL version shouldn't be a problem,我正在运行apk Galaxy Samsung S3,以及Galaxy Note 4。

  • 我将指纹放在用 keytool 检索的调试和发布版本并与我的密钥库连接,所以key it's OK,你也可以看到the reference image,甚至如果它说这是可选的。我把基础包和包含Maps活动的包放在一起只是为了确保。

  • 我等待了the app to fetch the location足够的时间,以及指纹传播以防万一。

  • Manifest拥有检索粗略和精细位置的所有正确权限(请记住在AVD中一切正常)

我过去已经成功在Android上开发地图。我记得每次经过4或5次试验以及令人沮丧的过程中的错误,我都可以实现它。这次我不知道该怎么做。我正在开发S.O.了解我在哪里错误。

2 个答案:

答案 0 :(得分:6)

我终于找到了解决方案。

在新的AndroidStudio示例中,带有密钥的文件( google_maps_api.xml )已放置到 app \ src \ debug \ res \ values 文件夹中,并且另一个在 app \ src \ release \ res \ values

虽然AndroidStudio会显示所有布局,所有值文件等,但只有一个带有密钥的值文件,所以我注意到文件系统中实际上有两个文件,一个没有设置密钥!我甚至没有现在可以有不同的文件夹。

我在这方面挣扎了好几天。每当我尝试创建一个简单的地图,某些内容被更改,弹出窗口并让我浪费时间时,就会发生这种情况。当你发现解决方案时,一切看起来都很明显,但与此同时它真的令人沮丧。

谢谢大家的帮助!我真的很感激。

答案 1 :(得分:1)

您必须检查您尝试在设备上安装的应用。它应该使用release key进行签名(模拟器使用调试密钥)!