Android活动在恢复时崩溃

Android活动在恢复时崩溃,android,web-services,Android,Web Services,这是我得到的错误: 03-13 22:27:28.156: E/AndroidRuntime(1166): FATAL EXCEPTION: main 03-13 22:27:28.156: E/AndroidRuntime(1166): java.lang.RuntimeException: Unable to resume activity {com.androidpoiservice/com.androidpoiservice.ViewMapActivity}: android.view.

这是我得到的错误:

03-13 22:27:28.156: E/AndroidRuntime(1166): FATAL EXCEPTION: main
03-13 22:27:28.156: E/AndroidRuntime(1166): java.lang.RuntimeException: Unable to resume activity {com.androidpoiservice/com.androidpoiservice.ViewMapActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2575)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2603)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2089)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.os.Looper.loop(Looper.java:137)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread.main(ActivityThread.java:4745)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at java.lang.reflect.Method.invokeNative(Native Method)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at java.lang.reflect.Method.invoke(Method.java:511)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at dalvik.system.NativeStart.main(Native Method)
03-13 22:27:28.156: E/AndroidRuntime(1166): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.Activity.setContentView(Activity.java:1867)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at com.androidpoiservice.ViewMapActivity.onResume(ViewMapActivity.java:67)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1184)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.Activity.performResume(Activity.java:5082)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2565)
03-13 22:27:28.156: E/AndroidRuntime(1166):     ... 12 more
03-13 22:27:28.156: E/AndroidRuntime(1166): Caused by: java.lang.IllegalArgumentException: Binary XML file line #8: Duplicate id 0x7f050012, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.MapFragment
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.app.Activity.onCreateView(Activity.java:4669)
03-13 22:27:28.156: E/AndroidRuntime(1166):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
03-13 22:27:28.156: E/AndroidRuntime(1166):     ... 22 more
代码如下:

public class ViewMapActivity extends Activity {

private static String TAG = "View Map";

private String username;
private String password;
private String name;
private String type;

private String SOAP_ACTION;
private String METHOD_NAME;
private String NAMESPACE;
private String URL;

private double latitude;
private double longitude;

private static LatLng Point = new LatLng(21 , 57);

private GoogleMap googleMap;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_view_map);
   }

    @Override
    protected void onResume() {
        super.onResume();
        setContentView(R.layout.activity_view_map); 
        Log.e(TAG,"Here");
        SOAP_ACTION = getString(R.string.server)+"POIWebServer/POIWebService/getMapData";
        METHOD_NAME = "getMapData";
        NAMESPACE =  getString(R.string.server)+"POIWebServer/POIWebService";
        URL = getString(R.string.server)+"POIWebServer/POIWebService/POIWebService?WSDL";

        LoginInfo log = new LoginInfo();
        username=log.username;
        password=log.password;

        getLocation();

        Thread networkThread = new Thread(){
            @Override
           public void run(){
               try {

                   SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);
                   SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                   envelope.setOutputSoapObject(request);
                   String temp=username+"#"+password;
                   request.addProperty("unpass",temp);
                   temp=String.valueOf(latitude)+","+String.valueOf(longitude);
                   request.addProperty("pos",temp);
                   HttpTransportSE ht = new HttpTransportSE(URL);
                   ht.call(SOAP_ACTION, envelope); 
                   final SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                   final String responseStr = response.toString();
                   runOnUiThread (new Runnable(){
                      public void run(){
                         // try { 
                         //   if (googleMap == null) {
                         //      googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
                          //  }
                         //   googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                           String[] pois = responseStr.split("\\$");
                              for(int i=0;i<pois.length;i++){
                                String part=pois[i];
                                String[] poiData=part.split("#");
                                double poiX=Double.parseDouble(poiData[0]);
                                double poiY=Double.parseDouble(poiData[1]);
                                String type=poiData[2];
                                String name=poiData[3];
                                Log.e(TAG,part);
                                Point = new LatLng(poiX , poiY);
                            //  Marker TP = googleMap.addMarker(new MarkerOptions().position(Point).title(name));
                              }



                         // } catch (Exception e) {
                        //    e.printStackTrace();
                         // }

                      }
                   });
               } catch(Exception e){
                   e.printStackTrace();
               }
           }
        };
        networkThread.start();

    }

    private void getLocation() {
        // Get the location manager
        LocationManager locationManager = (LocationManager) 
                getSystemService(LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        String bestProvider = locationManager.getBestProvider(criteria, false);
        Location location = locationManager.getLastKnownLocation(bestProvider);
        LocationListener loc_listener = new LocationListener() {

            public void onLocationChanged(Location l) {}

            public void onProviderEnabled(String p) {}

            public void onProviderDisabled(String p) {}

            public void onStatusChanged(String p, int status, Bundle extras) {}
        };
        locationManager.requestLocationUpdates(bestProvider, 0, 0, loc_listener);
        location = locationManager.getLastKnownLocation(bestProvider);
        try {
            latitude = location.getLatitude();
            longitude = location.getLongitude();
        } catch (NullPointerException e) {
            latitude = -1.0;
            longitude = -1.0;
        }
    }
公共类ViewMapActivity扩展活动{
私有静态字符串TAG=“查看地图”;
私有字符串用户名;
私有字符串密码;
私有字符串名称;
私有字符串类型;
私有字符串SOAP_动作;
私有字符串方法名称;
私有字符串名称空间;
私有字符串URL;
私人双纬度;
私人双经度;
专用静态车床点=新车床(21,57);
私人谷歌地图谷歌地图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u view\u map);
}
@凌驾
受保护的void onResume(){
super.onResume();
setContentView(R.layout.activity\u view\u map);
Log.e(标记“此处”);
SOAP_ACTION=getString(R.string.server)+“POIWebServer/POIWebService/getMapData”;
方法\u NAME=“getMapData”;
NAMESPACE=getString(R.string.server)+“POIWebServer/POIWebService”;
URL=getString(R.string.server)+“POIWebServer/POIWebService/POIWebService?WSDL”;
LoginInfo log=新的LoginInfo();
用户名=log.username;
password=log.password;
getLocation();
线程网络线程=新线程(){
@凌驾
公开募捐{
试一试{
SoapObject请求=新的SoapObject(名称空间、方法名称);
SoapSerializationEnvelope=新的SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(请求);
字符串temp=username+“#”+密码;
request.addProperty(“unpass”,temp);
温度=字符串.valueOf(纬度)+“,”+字符串.valueOf(经度);
请求。添加属性(“pos”,临时);
HttpTransportSE ht=新的HttpTransportSE(URL);
ht.呼叫(SOAP_动作、信封);
最终SoapPrimitive响应=(SoapPrimitive)信封.getResponse();
最终字符串responsest=response.toString();
runOnUiThread(新的Runnable(){
公开募捐{
//试试{
//if(googleMap==null){
//googleMap=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
//  }
//setMapType(googleMap.MAP\u TYPE\u HYBRID);
字符串[]pois=responsest.split(\\$);

对于(int i=0;i我认为您不应该在
onResume()
中设置内容视图。从那里删除它。您已经在
onCreate()
中进行了设置。这就是它所属的位置。

就是它了,谢谢!奇怪的是,尽管它没有使我的其他活动崩溃,但它不允许您运行setContentView两次。这就是问题所在。
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#0099cc"
    tools:context="com.androidpoiservice.ViewMapActivity" >

   <fragment
      android:id="@+id/map"
      android:name="com.google.android.gms.maps.MapFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"/>

</RelativeLayout>