2011-11-02 43 views
8

另一天的另一個問題,我終於設法正確地設置我的Android應用程序谷歌地圖,或至少我認爲我已經做到了,整個程序開始,它甚至會打電話給應該「打印」一張地圖的班級,但我能看到的只有一個帶有谷歌標籤的網格[在拐角處]。我檢查了Dalvik的監控和錯誤無法獲得連接工廠客戶端 - 與谷歌地圖戰鬥

E/MapActivity(394):無法獲取連接工廠客戶

發生。我已經在stackoverflow網站上發現我應該從dalvik顯示器發送一個gps信號或者這樣的信號,而且我已經完成了。沒有任何事情發生,我還得到了api密鑰,但沒有任何變化。

這裏是map.xml

<?xml version="1.0" encoding="utf-8"?> 
<!-- This file is /res/layout/mapview.xml --> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
<Button android:id="@+id/zoomin" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="+" 
android:onClick="myClickHandler" 
android:padding="12px" /> 
<Button android:id="@+id/zoomout" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="-" 
android:onClick="myClickHandler" 
android:padding="12px" /> 
<Button android:id="@+id/sat" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Satellite" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
<Button android:id="@+id/street" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Street" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
<Button android:id="@+id/traffic" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Traffic" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
<Button android:id="@+id/normal" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Normal" 
android:onClick="myClickHandler" 
android:padding="8px" /> 
</LinearLayout> 
<com.google.android.maps.MapView 
android:id="@+id/mapview" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:clickable="true" 
android:apiKey="0zPcz1VYRSpLusufJ2JoL0ffl2uxDMovgpW319w" /> 
</LinearLayout> 

這裏是一個MapMapa.java

public class MapMapa extends MapActivity 
{ 
private MapView mapView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.map); 
mapView = (MapView)findViewById(R.id.mapview); 
} 

public void myClickHandler(View target) { 
switch(target.getId()) { 
case R.id.zoomin: 
mapView.getController().zoomIn(); 
break; 
case R.id.zoomout: 
mapView.getController().zoomOut(); 
break; 
case R.id.sat: 
mapView.setSatellite(true); 
break; 
case R.id.street: 
mapView.setStreetView(true); 
break; 
case R.id.traffic: 
mapView.setTraffic(true); 
break; 
case R.id.normal: 
mapView.setSatellite(false); 
mapView.setStreetView(false); 
mapView.setTraffic(false); 
break; 
} 
} 
@Override 
protected boolean isLocationDisplayed() { 
return false; 
} 
@Override 
protected boolean isRouteDisplayed() { 
return false; 
} 

的manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="menu.dot" android:versionCode="1" ndroid:versionName="1.0"> 
<application android:label="@string/app_name" android:icon="@drawable/icon"> 
<uses-library android:name="com.google.android.maps" /> 
<activity android:name="MainActivity" 
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=".About"> 
android:label="@string/about_title" 
android:theme="@android:style/Theme.Dialog" > 
</activity> 
<activity android:name=".Exit"> 
andorid:label="@string/exit_title"> 
</activity> 
<activity android:name=".Options"> 
</activity> 
<activity android:name=".Start"> 
</activity> 
<activity android:name=".Create"> 
</activity> 
<activity android:name=".Where"> 
</activity> 
<activity android:name=".Proceed"> 
</activity> 
<activity android:name=".Finish"> 
</activity> 
<activity android:name=".Login"> 
</activity> 
<activity android:name=".OK"> 
</activity> 
<activity android:name=".UserPanel"> 
</activity> 
<activity android:name=".Managero"> 
</activity> 
<activity android:name=".Edition"> 
</activity> 
<activity android:name=".Done"> 
</activity> 
<activity android:name=".Delete"> 
</activity> 
<activity android:name=".MapMapa"> 
</activity> 

</application> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-sdk android:minSdkVersion="3" /> 
</manifest> 

my view

+1

不知道這是否會導致該問題,但是,你有沒有設置Internet權限的Android清單文件? – 2011-11-02 14:53:35

+1

@ user552629發佈您的清單文件? – Venky

+2

Kurtis Nusbaum,不知道我糾正了我的錯誤;) – iie

回答

6
E/MapActivity(394): Couldn't get connection factory client 

這不會成爲你的情況。這只是警告信息。

對於使用地圖,事情你需要牢記:

1.新增互聯網許可清單文件

<uses-permission android:name="android.permission.INTERNET" /> 

2.添加庫中的代碼清單文件:

<uses-library android:name="com.google.android.maps" /> 
  1. 擴展Map Activity而不是Activity也確保您的SDK谷歌沒有使用Android

  2. 然後使用Release Key,而不是通過使用Default Android Debug key 檢查這個職位產生圖例創建Key using Release Key.

爲了進一步引用檢查此鏈接Mobi Forge

Output of your code

+2

我已經完成了所有這些東西 – iie

+1

嗯我'我做了這件事從谷歌[這MD5]密鑰庫等密鑰。我是否必須使這個版本的關鍵,即使是模擬器? – iie

+0

@iie模擬器不需要嗎? – Venky

1

你需要建立簽署的apk文件,請在您的手機上嘗試。我通過同樣的問題

1

在Android的地圖程序,你必須把以下權限的Android清單文件 以前 <application></application>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" />

,你應該在標籤寫入之前

<uses-library android:name="com.google.android.maps" />

並生成適當的地圖API密鑰... 我的臉問題之後。 比我創建新的Android項目與谷歌阿比......我解決了這個問題...

0

老兄,你怎麼弄的API密鑰? 如果debug.keystore位於ur文檔和設置中,可能需要複製keytool.exe才能執行 keytool -list -alias androiddebugkey -keys tore debug.keystore -storepass android -keypass android -v

,這將釋放出一個錯誤的MD5密鑰。您必須執行以下操作 1-將您的debug.keystore複製到您的程序文件中java bin 2轉到cmd中的此目錄並執行keytool命令 它將爲您提供不同的MD5,這是正確的。

相關問題