嗨,我有一个谷歌地图的问题,它只适用于模拟器,但不适用于真实设备。
这是我的google_map_api.xml:
<resources>
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIza...</string
和我的清单:
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIza..." />
和我的班级:
public class MapsActivity extends Fragment implements OnMapReadyCallback {
private GoogleMap mMap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_maps, container, false);
final SupportMapFragment map = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);
map.getMapAsync(this);
return rootView;
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
try {
boolean success = googleMap.setMapStyle(
MapStyleOptions.loadRawResourceStyle(
this.getActivity(), R.raw.mapstyle));
} catch (Resources.NotFoundException e) {
}
return true;
}
});
}
}
请打印您的日志,但在此之前请检查您是否在线
您的google_maps_key必须使用您用于生成在设备中安装的apk的版本证书(SHA-1)进行注册
见here
更改Google Maps API密钥并检查互联网是否在真实设备中正常工作,设备minSdkVersion为21及更高版本。