嗨,我正在尝试使用支持地图片段来显示谷歌地图片段,尽管我的项目同时具有 android-support-v4 jar 和 google-play-service_lib jar,但到目前为止没有任何乐趣
这是我的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</RelativeLayout>
我的地图活动
package com.jr.haliotest;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.jr.haliotest.utils.IntentFilters;
import com.jr.haliotest.utils.Position;
/**
* @author RichardsJ
*
*/
public class MapActivity extends FragmentActivity implements IntentFilters {
private GoogleMap googleMap;
private Position mPosition;
private CameraPosition mCameraPosition;
/*
* (non-Javadoc)
*
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.map_view_layout); //fails here
mPosition = getIntent().getParcelableExtra(INTENT_EXTRA_POSITION);
mCameraPosition = new CameraPosition(new LatLng(
mPosition.getLattitude(), mPosition.getLongetude()), 0, 0, 0);
initialiseView();
}
private void initialiseView() {
googleMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
if (googleMap == null) {
Log.d("", "Map wasnt loaded properly");
} else {
Log.d("", "Map loaded fine");
googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}
googleMap.moveCamera(CameraUpdateFactory
.newCameraPosition(mCameraPosition));
}
}
完整的堆栈跟踪
03-29 00:20:17.501: E/AndroidRuntime(2211): FATAL EXCEPTION: main
03-29 00:20:17.501: E/AndroidRuntime(2211): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
03-29 00:20:17.501: E/AndroidRuntime(2211): at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
03-29 00:20:17.501: E/AndroidRuntime(2211): at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
03-29 00:20:17.501: E/AndroidRuntime(2211): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:365)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.Activity.setContentView(Activity.java:1912)
03-29 00:20:17.501: E/AndroidRuntime(2211): at com.jr.haliotest.MapActivity.onCreate(MapActivity.java:36)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.Activity.performCreate(Activity.java:5066)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.ActivityThread.access$600(ActivityThread.java:151)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.os.Handler.dispatchMessage(Handler.java:99)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.os.Looper.loop(Looper.java:155)
03-29 00:20:17.501: E/AndroidRuntime(2211): at android.app.ActivityThread.main(ActivityThread.java:5485)
03-29 00:20:17.501: E/AndroidRuntime(2211): at java.lang.reflect.Method.invokeNative(Native Method)
03-29 00:20:17.501: E/AndroidRuntime(2211): at java.lang.reflect.Method.invoke(Method.java:511)
03-29 00:20:17.501: E/AndroidRuntime(2211): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
03-29 00:20:17.501: E/AndroidRuntime(2211): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
03-29 00:20:17.501: E/AndroidRuntime(2211): at dalvik.system.NativeStart.main(Native Method)
如果我使用 MapFragment 对象而不是支持的对象,它工作正常。
有任何想法吗?我错过了什么?尝试清洁,关闭日食,重新安装应用程序,没有乐趣