【发布时间】:2013-08-07 07:37:26
【问题描述】:
所以过去两天我一直在尝试处理这个 GreyGridOfDoom™,但没有任何结果。我已经阅读了数十篇 SO 帖子,并跳过了至少一百个关于该主题的 Google 搜索结果。
到目前为止的故事:
- 我有来自 Google API ACCESS 网站的 Android API 密钥。
- 我可以得到 GGOD 但没有地图数据。缩放键等工作正常。
- 到目前为止,我已经尝试了大概 15 种不同的解决方案。
- 我已经制作了几个具有不同 GOOGLE API 版本的 AVD,但没有一个有任何不同。准确地说,我已经尝试了 8-14。
- 在日志中“[MapActivity] 无法获取连接工厂客户端”是所有地狱都崩溃的地方。
- 我正在使用 MapActivity 和最新的 Google Play 服务。
- 我的密钥是使用 .android 文件夹中的 debug.keystore 生成的。
是的。我有一种直觉,我有一个错误的 API Key,但我真的不确定。
这是我的相关代码:
MapsActivity.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.Support.V4.App;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.GoogleMaps;
namespace IgluHarkka2
{
[Activity (Label = "MapsActivity", MainLauncher = true)]
public class MapsActivity : MapActivity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.Map);
MapView mapView = (MapView) FindViewById(Resource.Id.mapView);
mapView.SetBuiltInZoomControls (true);
}
protected override bool IsRouteDisplayed
{
get {return false;}
}
}
}
地图.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">
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="XXXXXXXXXX" />
</RelativeLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="IgluHarkka2.IgluHarkka2">
<uses-sdk android:minSdkVersion="7" />
<application android:label="IgluHarkka2">
<uses-library android:name="com.google.android.maps" />
</application>
<permission android:name="com.IgluHarkka2.IgluHarkka2.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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" />
</manifest>
在这里,我基本上是在讨论这个问题,只是发送垃圾邮件包名称以查看是否是问题所在...... Api Access screenshot
所以,如果有人能解决这个问题,我几乎就是世上最幸福的人了。我现在会经常刷新这个页面,因为我目前没有解决方案。我就是想不通:
编辑: 更多信息:
应用程序输出
Forwarding debugger port 8897
Forwarding console port 8898
Detecting existing process
[monodroid-gc] GREF GC Threshold: 1800
Loaded assembly: IgluHarkka2.dll
Loaded assembly: GooglePlayServicesLib.dll [External]
Loaded assembly: Newtonsoft.Json.dll [External]
Loaded assembly: Mono.Android.GoogleMaps.dll [External]
Loaded assembly: Mono.Android.dll [External]
[MonoDroid] Xamarin/Android Trial Mode Active
[dalvikvm-heap] Grow heap (frag case) to 7.236MB for 441776-byte allocation
[gralloc_goldfish] Emulator without GPU emulation detected.
Loaded assembly: System.Core.dll [External]
Loaded assembly: MonoDroidConstructors [External]
[CursorWrapperInner] Cursor finalized without prior close()
[CursorWrapperInner] Cursor finalized without prior close()
[MapActivity] Handling network change notification:CONNECTED
[MapActivity] Couldn't get connection factory client
[System.err] IOException processing: 26
[System.err] java.io.IOException: Server returned: 3
[System.err] at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115)
[System.err] at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473)
[System.err] at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117)
[System.err] at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994)
[System.err] at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702)
[System.err] at java.lang.Thread.run(Thread.java:856)
模拟器截图: Screenshot
【问题讨论】:
-
你检查stackoverflow.com/questions/7296467/…了吗?听起来这正是你的错误。
-
是的。问题是我没有使用 Eclipse,而且我已经使用了 debug.keystore。所以我认为那篇文章在这里并不适用。
-
我是否应该以某种方式生成一个新的 debug.keystore 并使用新的 SHA1 指纹来创建一个新的 API 密钥?如果是这种情况,我不确定如何使用 Xamarin 获取新的密钥库。
-
检查您收到的错误编号。它们与您的情况完全相同。它必须是类似的东西。尝试阅读此问题中的其他答案,也许它们包含有关您缺少什么的线索。
-
老实说,我没有真正尝试过的唯一问题是创建一个新的 debug.keystore,但我不知道该怎么做。我昨天尝试搜索有关该主题的信息,但我不知道如何在 Xamarin 上进行搜索。
标签: c# android google-maps android-mapview xamarin