2011-11-04 60 views
1

我试图在我的应用程序上显示一个基本的谷歌地图,但这不起作用它显示一个白色屏幕,而不是我有一个网络连接,我也检查我的MANEFIST一百次,我genub deubg键,并确定它是真的安卓空白页上的谷歌地图(白色)

我想如果有人可以带领我什么做错了?

我也没有修改代码,但在EMULATOR上第二次显示地图并且在我的设备上它并不突然显示在模拟器上的AT ALL上。



public class MyMapDisplayActivity extends MapActivity {

MapController MControl; 
GeoPoint GeoP; 
MapView mapview; 



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

      //Map 
      MapView mapview = (MapView) findViewById(R.id.mapview); 
      mapview.displayZoomControls(true); 
      mapview.setBuiltInZoomControls(true); 

      double lat = 19.7888; 
      double longi = 52.535; 


      GeoP = new GeoPoint ((int) (lat *1E6),(int) (longi *1E6)); 


      MControl = mapview.getController(); 
      MControl.animateTo(GeoP); 
      MControl.setZoom(14); 




      MyLocationOverlay LocationOverlay = new MyLocationOverlay(this, mapview); 
      mapview.getOverlays().add(LocationOverlay); 
      LocationOverlay.enableCompass(); 
      LocationOverlay.enableMyLocation(); 
}//onCreate 

//Map 
@Override 
protected boolean isRouteDisplayed() { 
return false; 
} 





<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tab2" 
     android:orientation="vertical" 
     android:paddingTop="60px" 
     > 
     <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="0jiwJEbT6if6dhaf0x6Fr_zRLsrz_CYxcLGj6pQ" 
       /> 

</LinearLayout> 





<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="jdisplay.map" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="8" /> 
      <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".BatteryprojectActivity" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <uses-library android:name="com.google.android.maps" /> 
     </application> 

</manifest> 
+1

你可以发布你的清单,你的布局和活动代码? – Chiara

+0

编辑我的帖子提前致谢 – mabalowsho

回答

1

你必须创建两个不同的API密钥,一个与仿真器和一个调试签名密钥用你用来签署设备apk的密钥。

+0

我已经有两个不同的键。 我刚刚在主内发布了API调试密钥。xml – mabalowsho

+0

只是说,因为它不清楚你的问题。另一件事:最好在onResume方法中执行enablemylocation,并在onPause方法中执行disableMyLocation。 –

+0

您可以尝试的另一件事是在LinearLayout的layout_height中更改fill_parent的wrap_content。 –

0

我认为这两点可能会对你有所帮助。我有类似的问题 -

  1. 尝试在应用程序标记之后和活动标记之前放置uses-library行。这很重要,可能是因为图书馆正在参加活动课。

  2. 如果这不能解决问题,请尝试检查您的API密钥是否已正确生成。找到位于默认文件夹“C:\ Documents and Settings \\ Local Settings \ Application Data”中的SDK调试证书\ Android“并在Keytool命令中使用此位置路径。您也可以将它复制到“C:\ android”,然后运行 'keytool.exe -list -alias androiddebugkey -keystore“C:\ android \ debug.keystore”-storepass android -keypass android'。无论哪种方式,路径都需要正确指定。它确实创建了密钥,但在运行应用程序时不加载地图。在我重新创建关键字之后,我的地图加载了一个jiffy。

0

调试关键 - 你可以用它来直接从Android Studio中调试应用程序或虚拟设备或通过USB将手机/平板电脑上使用谷歌地图API的Eclipse。

发布密钥 - 您可以使用它来制作已签名的apk文件,您可以将其安装在任何其他设备上。

如果你想测试你的发布密钥,你需要创建你的应用程序的apk文件,并将其安装在你的设备上 - 相信我这是100%肯定!

您无法使用释放键进行调试(运行地图)应用程序!

,这就是为什么它被称为调试和发布:d