Google 地图显示在模拟器上,但不显示在设备上
Google Maps showing on emulator, but not on a device
我写了一个基本的地图应用程序,可以用 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,都可以,在phone和AVD
The OpenGL version shouldn't be a problem,我运行apk都在一个
Galaxy 三星 S3,以及 Galaxy Note 4。
我为使用 keytool 检索的调试和发布版本放置了我的指纹,并连接了我的密钥库,所以 key it's OK, you can also see the reference image,即使它说这是可选的。我把基础包和包含地图的包都放在 activity 只是为了确定。
我为 the app to fetch the location 等待了足够的时间,并等待指纹传播以备不时之需。
清单具有检索粗略和精细位置的所有正确权限(记住在 AVD 中一切正常)
我过去已经成功地在 Android 上开发了一张地图。我记得每次在令人沮丧的过程中经过 4 或 5 次试验和错误后,我都能实现它。这次我不知道该怎么办了。我正在开发 S.O。了解我错在哪里。
您必须检查您要在设备上安装的应用。它应该使用发布密钥签名(而模拟器使用调试密钥)!
终于找到解决办法了
在新的 AndroidStudio 示例中,带有密钥 (google_maps_api.xml) 的文件已被放置到文件夹 app\src\debug\res\values,另一个在 app\src\release\res\values!
虽然 AndroidStudio 向您展示了所有布局、所有值文件等,但只有一个带键的值文件,所以我没有注意到文件系统中实际上有两个文件,一个带键没有设置!我什至现在都不知道可能有不同的文件夹。
我为此苦苦挣扎了几天。每次我尝试创建一个简单的地图时,都会发生这种情况,有些东西会发生变化,弹出窗口让我浪费时间。当您抓住解决方案时,一切似乎都那么明显,但与此同时,它真的很令人沮丧。
感谢大家的帮助!我真的很感激。
我写了一个基本的地图应用程序,可以用 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,都可以,在phone和AVD
The OpenGL version shouldn't be a problem,我运行apk都在一个 Galaxy 三星 S3,以及 Galaxy Note 4。
我为使用 keytool 检索的调试和发布版本放置了我的指纹,并连接了我的密钥库,所以 key it's OK, you can also see the reference image,即使它说这是可选的。我把基础包和包含地图的包都放在 activity 只是为了确定。
我为 the app to fetch the location 等待了足够的时间,并等待指纹传播以备不时之需。
清单具有检索粗略和精细位置的所有正确权限(记住在 AVD 中一切正常)
我过去已经成功地在 Android 上开发了一张地图。我记得每次在令人沮丧的过程中经过 4 或 5 次试验和错误后,我都能实现它。这次我不知道该怎么办了。我正在开发 S.O。了解我错在哪里。
您必须检查您要在设备上安装的应用。它应该使用发布密钥签名(而模拟器使用调试密钥)!
终于找到解决办法了
在新的 AndroidStudio 示例中,带有密钥 (google_maps_api.xml) 的文件已被放置到文件夹 app\src\debug\res\values,另一个在 app\src\release\res\values!
虽然 AndroidStudio 向您展示了所有布局、所有值文件等,但只有一个带键的值文件,所以我没有注意到文件系统中实际上有两个文件,一个带键没有设置!我什至现在都不知道可能有不同的文件夹。
我为此苦苦挣扎了几天。每次我尝试创建一个简单的地图时,都会发生这种情况,有些东西会发生变化,弹出窗口让我浪费时间。当您抓住解决方案时,一切似乎都那么明显,但与此同时,它真的很令人沮丧。
感谢大家的帮助!我真的很感激。