2011-12-16 65 views
0

經過30小時的編程和失敗,我意識到我不能做我想做的事。所以這是最後一次努力得分。Android的GPS地圖顯示網格

試圖實施谷歌API顯示在地圖上的東西。

我基本上完全遵循了Android教程,它仍然拒絕工作。

它只是顯示在MapView上的網格,我的朋友測試了我的API密鑰,所以它應該沒問題。

我本來要使用的唯一權限是

android.permission.INTERNET 

我見過的其他線程,但我敢肯定,關鍵是不錯,我覺得權限是在正確的地方。

<com.google.android.maps.MapView 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/mapview" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:clickable="true" 
android:apiKey="key" 
    /> 


</LinearLayout> 

清單

<uses-sdk android:minSdkVersion="8" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" android:debuggable="false"> 
    <uses-library android:name="com.google.android.maps" /> 
    <activity 

進口的java.util.List;

import com.google.android.maps.GeoPoint; 
import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapView; 
import com.google.android.maps.Overlay; 
import com.google.android.maps.OverlayItem; 


import android.graphics.drawable.Drawable; 
import android.os.Bundle; 

public class Main extends MapActivity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    MapView mapView = (MapView) findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

    List<Overlay> mapOverlays = mapView.getOverlays(); 
    Drawable drawable = this.getResources().getDrawable(R.drawable.androidmarker); 
    MyItemizedOverlay itemizedoverlay = new MyItemizedOverlay(drawable); 

    GeoPoint point = new GeoPoint(19240000,-99120000); 
    OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!"); 

    itemizedoverlay.addOverlay(overlayitem); 
    mapOverlays.add(itemizedoverlay); 
} 



@Override 
protected boolean isRouteDisplayed() { 
    // TODO Auto-generated method stub 
    return false; 
} 
    } 

看起來我還爲時過早,我建了另一把鑰匙,就像我上次做的一樣。這次關鍵工作。

但現在的問題是,當我點擊變焦,它強制關閉應用程序德

+0

您是否在調試模式下使用了APK版本的API密鑰? – 2011-12-16 04:30:05

+0

我不知道這意味着什麼。我使用了將MD5粘貼到此處後獲得的api密鑰:http://code.google.com/android/maps-api-signup.html。我也嘗試過我的朋友api,它也沒有工作,但都爲他工作。我認爲它只是一個由api生成的調試版本,我記得所有這些都是通過cmd – TroothHertz 2011-12-16 04:32:52

回答

1

不使用debug.keystore。使用new keystoreRight click on ur project>Android tools> Export signed application package。創建新的密鑰庫(記住別名和密碼)。

現在,在命令提示符下使用以下命令:

cd "C:\Program Files\Java\jdk1.7.0_01\bin 


keytool -v -list -alias <ur alias name> -keystore <ur keystore name>.keystore -storepass android -keypass android 

它要求password後,它給出了一個MD5 fingerprint請使用MD5指紋產生google api key。更換密鑰。 現在Project Right Click>Android tools>Export Signed Application package>

Use existing keystore 

選擇以前的密鑰存儲和u get apk in release mode.檢查安裝此apk.It應該正常運行。

0

我認爲,問題只是你MyItemizedOverlay類。

你提到當我變焦意味着變焦控制或在您的Android 標記點擊?

我測試了我的代碼,但只做了改變,是我自己的ItemizedOverlay類。它對縮放控制和標記點擊都很好。

的唯一的事我可以幫你的是,如果您的應用程序崩潰,當您點擊地圖上的標記,那麼你必須通過上下文來ItemizedOverlay類

如果沒有,請將您的代碼,我會嘗試解決你的問題。