Dam*_*era 5 java xml android google-maps
我做了al程序添加谷歌地图api但我得到这个错误.抱歉语言不好.
09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/du; (406)
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/du;' failed
01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/a/ej; (2358)
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/a/ej;' failed
01-09 12:20:55.359: W/dalvikvm(5918): Unable to resolve superclass of Lmaps/j/k; (2374)
01-09 12:20:55.359: W/dalvikvm(5918): Link of class 'Lmaps/j/k;' failed
01-09 12:20:55.359: E/dalvikvm(5918): Could not find class 'maps.j.k', referenced from method maps.y.ae.a
01-09 12:20:55.359: W/dalvikvm(5918): VFY: unable to resolve new-instance 3566 (Lmaps/j/k;) in Lmaps/y/ae;
Run Code Online (Sandbox Code Playgroud)
这是manifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.comparto.piso.permission.MAPS_RECEIVE" />
<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" />
<permission
android:name="com.comparto.piso.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<application
........ >
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="api key" />
......
.....
Run Code Online (Sandbox Code Playgroud)
在java代码中,我扩展了FragmentActivity,这里是onCreate代码
GooglePlayServicesUtil
.isGooglePlayServicesAvailable(getApplicationContext());
GoogleMap map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
if (map != null) {
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
Run Code Online (Sandbox Code Playgroud)
这里是布局xml
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="300px"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)
如果您的设备与Google地图库使用的API级别不同,那么来自Dalvik的所有"无法解析超类xxxx"和"类别xxxx链接失败"都是正常的.
您应该使用以下命令检查是否收到授权失败:
adb logcat | grep Maps
Run Code Online (Sandbox Code Playgroud)
如果你看到这样的话:
E/Google Maps Android API(): Authorization failure.
Run Code Online (Sandbox Code Playgroud)
那么这意味着您没有在清单中提供正确的API密钥.再次检查您的Google API控制台(在" API访问"部分中)是否添加了正确的指纹和包名称对,如指南中所述.
当在没有可用的 Google Play API 的设备上运行时,通常会出现该错误消息。您调用isGooglePlayServicesAvailable(),但没有检查返回值。ConnectionResult.SUCCESS在继续之前,您应该检查以确保它返回。如果出现其他错误代码,您可以通过提示升级/安装getErrorDialog(),例如 --
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
switch (resultCode) {
case ConnectionResult.SUCCESS: // proceed
break;
case ConnectionResult.SERVICE_MISSING:
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
case ConnectionResult.SERVICE_DISABLED:
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 1);
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
据 Google 称,Google Play 服务 API 需要“物理开发设备”,因此模拟器并未正式支持它们。因此,如果您在模拟器上运行,几乎可以肯定您缺少所需的服务。人们报告让它在模拟器中工作,但我自己还没有尝试过。如果您想在模拟器上安装 Google Play,您可以查看这篇文章中的答案。
| 归档时间: |
|
| 查看次数: |
10535 次 |
| 最近记录: |