在我的Android应用中,我添加了Android Studio程序的地图活动(add-> new activity - > Google - > Map)。我遵循了这个例子:https://developers.google.com/maps/documentation/android-api/start#step_2_install_the_google_play_services_sdk。
但是,如果我打开地图活动,这很奇怪,我只会看到Google徽标上的地图,但完全是空的(我附上了截图)。而且我没有看到任何连接或关键错误消息。为什么呢?
PS我只添加了" import com.mycompany.myapp.R"在活动java文件中的行,因为在原始文件中使用自动程序创建,我看到所有" R"在该文件中以红色显示错误。
汇总:
1)我已经在Android Studio自动程序中添加了地图活动 2)我已按照程序并在我的应用程序中复制了密钥(我没有看到任何密钥或证书错误消息) 3)我只添加了关于import com.mycompany.myapp.R的行 4)如果我在我的真实设备上进行测试,我会看到一张空白地图。
感谢!
活动代码:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mycompany.myapp.Views.myFragmentMap" />
&#13;
与活动相关的java文件代码:
package com.mycompany.myapp.Views;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
//I have added only this one!
import com.mycompany.myapp.R;
public class myFragmentMap extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_myapp_map);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
/**
* Manipulates the map once available.
* This callback is triggered when the map is ready to be used.
* This is where we can add markers or lines, add listeners or move the camera. In this case,
* we just add a marker near Sydney, Australia.
* If Google Play services is not installed on the device, the user will be prompted to install
* it inside the SupportMapFragment. This method will only be triggered once the user has
* installed Google Play services and returned to the app.
*/
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
LatLng sydney = new LatLng(-34, 151);
mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
}
}
&#13;
谷歌地图api文件,其中我复制了我的密钥:
<resources>
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">
AIza.... (and the correct code imported from Google)
</string>
</resources>
&#13;
答案 0 :(得分:0)
您是否在安装Google Play服务SDK后立即运行该应用程序?
Daniel是对的,您可以检查日志中是否存在可能与API密钥相关的错误。
您的应用需要API密钥才能访问Google地图服务器。您需要的密钥类型是Android应用程序的密钥。关键是免费的。您可以将其与调用Google Maps Android API的任何应用程序一起使用,并且它支持无限数量的用户。
使用Android Studio为您创建的google_maps_api.xml文件中提供的凭据:
- 复制
google_maps_api.xml
文件中提供的凭据。- 转到浏览器中的Google Developers Console。
- 使用复制的凭据将您的应用添加到现有API密钥或创建新的API密钥。有关详细信息,请参阅complete process。
醇>
按照1-7的所有步骤,将为您提供基本的谷歌地图应用程序。我希望它有所帮助。此外,还有Google Map on Android do not load以前可能与您的体验相关的内容
答案 1 :(得分:0)
我遇到类似的问题。尝试删除您的应用,然后重新安装。