我正在开发具有谷歌地图显示的Android应用程序。我已经完成了很多编码,但我坚持不在谷歌应用程序中获取谷歌地图显示的问题。我已经尝试过各种方法使它工作但没有运气。
我收到以下错误
我用dubug&创建了Google地图api密钥。发布模式,但两个键都不起作用。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.traqer"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="21" />
<!-- Internet Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Google Map Permissions -->
<permission
android:name="com.example.traqer.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.traqer.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/splash"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".LoginActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MenuActivity"
android:label="@string/title_activity_dashboard" >
</activity>
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="myapikey" />
</application>
</manifest>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="300dp"
android:layout_below="@+id/spinner1"
android:apiKey="myapikey"
android:clickable="true"
android:enabled="true" />
</RelativeLayout>
public class DashboardActivity extends Fragment implements Constants {
MapView mapView;
GoogleMap map;
public DashboardActivity() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_dashboard,
container, false);
/** Google Map Code **/
// Gets the MapView from the XML layout and creates it
mapView = (MapView) rootView.findViewById(R.id.mapview);
mapView.onCreate(savedInstanceState);
map = mapView.getMap();
map.setMyLocationEnabled(true);
map.getUiSettings().setMyLocationButtonEnabled(false);
map.getUiSettings().setScrollGesturesEnabled(true);
map.getUiSettings().setTiltGesturesEnabled(true);
MapsInitializer.initialize(getActivity());
return rootView;
}
}
尝试此操作后,我得到了带缩放控制的空白谷歌地图。请提出任何建议以解决我的问题。
答案 0 :(得分:0)
不推荐使用MapView,因为很长一段时间,使用Google Map Api V2。
你的map.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
//显示地图的活动:
私人GoogleMap googleMap;
if (googleMap == null) {
googleMap = ((MapFragment) getFragmentManager().findFragmentById(
R.id.map)).getMap();
// check if map is created successfully or not
if (googleMap == null) {
Toast.makeText(getApplicationContext(),
"Sorry! unable to create maps", Toast.LENGTH_SHORT)
.show();
}
}
不要忘记从Google控制台启用Google Maps Api V2服务,并提供正确的Google Map Api密钥。