2014-03-13 193 views
0

崩潰這是錯誤我得到:Android的活動,在恢復

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; 
     } 
    } 

}

這是layout.xml

<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> 

我找不出有什麼不對,請幫幫我

+0

它不會讓你運行兩次setContentView。那就是問題所在。 – Murad

回答

2

我不認爲你應該在onResume()中設置內容視圖。從那裏刪除它。你反正已經在onCreate()中做到了。這就是它所屬的地方。

+0

這就是它的感謝!奇怪,雖然它沒有讓我的其他活動崩潰 –