2011-12-16 68 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类

如果没有,请将您的代码,我会尝试解决你的问题。