2013-01-09 76 views
5

我做的程序添加谷歌地圖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; 

這裏其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" /> 
    ...... 
    ..... 

在Java代碼中我伸出FragmentActivity這裏其的onCreate代碼

GooglePlayServicesUtil 
       .isGooglePlayServicesAvailable(getApplicationContext()); 

     GoogleMap map = ((SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map)).getMap(); 
     if (map != null) { 
      map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     } 

這裏的佈局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" /> 
+0

你的困惑是不工作,我猜 – njzk2

+1

請編輯並添加你的代碼的相關部分。即使你不懂英文,這也不是提問的方式。 – Nezam

+0

好吧,我會編輯現在添加更多的代碼。對不起 –

回答

1

這個錯誤信息通常佔用在沒有可用的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(); 
} 

據谷歌稱,谷歌播放服務API的要求「物理顯影設備」,所以他們不官方支持模擬器。所以,如果您在模擬器上運行,幾乎可以肯定您缺少所需的服務。人們報告讓它在模擬器中工作,但我沒有嘗試過自己。如果您想查看在模擬器上安裝Google Play,您可以查看this post以上的答案。

+0

我在真實的設備上運行測試,並獲得成功。 logcat中的錯誤是:找不到類「maps.j.k」,從方法maps.y.ae.a引用 –

+0

好的。您是否安裝並更新了[Google地圖](https://play.google.com/store/apps/details?id=com.google.android.apps.maps&hl=en)?看看你的日誌跟蹤的開始,看看你是否看到類似'E /谷歌地圖Android API(14657):谷歌地圖應用程序丟失.' – iagreen

+0

請參閱[這個答案](http://stackoverflow.com/a/ 13789869),瞭解如何在應用程序中以編程方式進行檢查。 – iagreen

0

如果您在佈局XML使用 「類=」 com.google.android.gms.maps.SupportMapFragment」,你現在使用Android:下的minSdkVersion Android 3.0的或者更低的的manifest.xml

然後在下面看到我的鏈接網站,這有助於您在設備上運行Google地圖之前瞭解應該安裝和設置的內容。此鏈接非常簡單,您將獲得想要的內容以顯示Google您的設備上的地圖。

My linked site ===> just Click here

+0

我下載了您的示例並且遇到了同樣的問題。我在2個不同的設備上運行該項目,結果相同。對不起,語言不好,謝謝你的回答 –

+0

你有沒有嘗試在你的Manifest.xml的中輸入你的API密鑰? – BBonDoo

5

所有「無法解析超如果您的設備與Google地圖庫使用的設備不在相同的API級別,則logcat中Dalvik的「xxxx」和「類xxxx鏈接失敗」是正常的。

您應該檢查是否正在使用此命令獲取授權失敗,而不是:

adb logcat | grep Maps 

如果你看到這樣的內容:

E/Google Maps Android API(): Authorization failure. 

那麼這將意味着你沒有提供清單中正確的API密鑰。請再次檢查您的Google API Console(位於API訪問部分)是否添加了正確的指紋和包名稱對,如described in the guide

0

也許你的eclipse的SHA1鍵被改變了(例如:你可能會刪除Windows的home文件夾中的.android文件夾),所以這就是它認證錯誤的原因。您必須刪除您的密鑰並使用新的日蝕的SHA1創建新密鑰。 enter image description here

雷根新的密鑰在這裏和重裝在幾分鐘這個頁面,它會更新新的密鑰: https://console.developers.google.com/project/watchful-net-796/apiui/credential

切記!畢竟,您必須複製新密鑰來清單和重建您的項目。祝你好運!

0

你丟失了一些API中值參數

而且google playService版本還缺少關鍵

<meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="api key" /> 

進入API_KEY。添加

<meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

manifest<application標籤

1

我有點resaerch我發現我已經忘了啓用從開發者控制檯地圖APi的如下圖所示PIC後出現相同的白色屏幕的問題: -

我希望你可能有同樣的問題,這將有助於: -

Map api enable on console

相關問題