Android 显示地图时应用程序出错
我不熟悉安卓系统 我正试图用谷歌地图在android上制作一个简单的应用程序,但当我在emulator中运行它时,会出现错误 应用程序MapGoogle(process com.jol.android.MapGoogle)意外停止。请再试一次 这是我的GoogleMap.javaAndroid 显示地图时应用程序出错,android,android-layout,Android,Android Layout,我不熟悉安卓系统 我正试图用谷歌地图在android上制作一个简单的应用程序,但当我在emulator中运行它时,会出现错误 应用程序MapGoogle(process com.jol.android.MapGoogle)意外停止。请再试一次 这是我的GoogleMap.java package com.jol.android.Mapgoogle; import android.content.Context; import android.location.Location;
package com.jol.android.Mapgoogle;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.RelativeLayout;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
public class Googlemaps extends MapActivity {
private MapController mapController;
private MapView mapView;
private LocationManager locationManager;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.main); // bind the layout to the activity
// create a map view
RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.mapview);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setStreetView(true);
mapController = mapView.getController();
mapController.setZoom(14); // Zoon 1 is world view
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new GeoUpdateHandler());
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
public class GeoUpdateHandler implements LocationListener {
@Override
public void onLocationChanged(Location location) {
int lat = (int) (location.getLatitude() * 1E6);
int lng = (int) (location.getLongitude() * 1E6);
GeoPoint point = new GeoPoint(lat, lng);
mapController.animateTo(point); // mapController.setCenter(point);
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
}
这是我的舱单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jol.android.Mapgoogle"
android:versionCode="1"
android:versionName="1.0" >
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".mapgoogle"
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:required="true"
android:name="com.google.android.maps" />
</application>
<uses-sdk android:minSdkVersion="9" />
</manifest>
这是我的main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="0Qe1BE05sZZFeWkfqemBVn-tw_Y_Kc9E40HpY-w" />
</RelativeLayout>
但是当我运行这个程序时,我得到了这个错误
应用程序MapGoogle(process com.jol.android.MapGoogle)意外停止。请再试一次
为什么会这样?请帮帮我。谢谢你,伙计。试试这个
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
将其放入清单中:
<uses-permission android:name="android.permission.INTERNET">
您有几个问题,主要是线路问题:
RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.mapview);
这是一个非法演员,它什么也不做-摆脱它
作为一个风格的问题,你的包应该是所有的小写,使它
package com.jol.android.mapgoogle;
确保编译单元名为Googlemaps.java,并且与类名匹配
正如其他海报所指出的,您需要清单中的某些权限。这个清单应该可以工作,并与我提到的其他更改相匹配
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jol.android.mapgoogle"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-sdk android:minSdkVersion="9" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Googlemaps"
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"
android:required="true" >
</uses-library>
</application>
</manifest>
.您需要在清单文件中添加以下标记
<application >
<activity>
<uses-library android:name="com.google.android.maps" />
</activity>
</application>
你能从logcat发布stacktrace吗?这个问题根本没有提到ads-这是关于Google map的工作,非常感谢,但是当我运行时,我只看到一个网格,我没有看到地图,为什么?这通常是因为你的maps API密钥与你的签名证书不匹配。我重新请求了两次,得到了相同的apikey,我怎样才能拿到比赛的钥匙??赫夫特