2015-07-21 32 views
2

當我嘗試在活動中啓動片段時,出現以下異常。看起來這是一個常見問題,我擁有答案中建議的所有必要權限。痕跡不是很有幫助。無法啓動活動ComponentInfo {Activity}:android.view.InflateException:二進制XML文件行錯誤膨脹類片段

Process: com.eazysystems.transdoc, PID: 11129 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxx.xxxx/com.xxxx.xxxx.view.ViewRecordActivity}: android.view.InflateException: Binary XML file line #5: Error inflating class fragment 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
     at android.app.ActivityThread.access$800(ActivityThread.java:151) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5257) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: android.view.InflateException: Binary XML file line #5: Error inflating class fragment 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
     at com.eazysystems.transdoc.view.ViewRecordActivity.onCreate(ViewRecordActivity.java:21) 
     at android.app.Activity.performCreate(Activity.java:5990) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5257) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: java.lang.NullPointerException 
     at java.lang.VMClassLoader.findLoadedClass(Native Method) 
     at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:362) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:499) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
     at android.support.v4.app.Fragment.isSupportFragmentClass(Fragment.java:455) 
     at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2135) 
     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:300) 
     at android.support.v7.app.AppCompatDelegateImplV7.callActivityOnCreateView(AppCompatDelegateImplV7.java:838) 
     at android.support.v7.app.AppCompatDelegateImplV11.callActivityOnCreateView(AppCompatDelegateImplV11.java:34) 
     at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:826) 
     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:725) 
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
            at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
            at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
            at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
            at com.eazysystems.transdoc.view.ViewRecordActivity.onCreate(ViewRecordActivity.java:21) 
            at android.app.Activity.performCreate(Activity.java:5990) 
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
            at android.app.ActivityThread.access$800(ActivityThread.java:151) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5257) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:372) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

而且,此Activity類中的setContentView(R.layout.activity_view_record);發生異常。我試圖儘可能簡化應用程序,但它獲得相同的例外

public class ViewRecordActivity extends AppCompatActivity { 

    private static String RECORD_ID = "RECORD_ID"; 

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

     /*Bundle extras = getIntent().getExtras(); 
     Integer recordId = extras.getInt(RECORD_ID);*/ 

     ViewRecordFragment viewRecordFragment = ViewRecordFragment.newInstance(1); 
     //viewRecordFragment.setArguments(getIntent().getExtras()); 

     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager 
       .beginTransaction() 
       .replace(R.id.view_record_fragment, viewRecordFragment 
       ).commit(); 
    } 


    public static class ViewRecordFragment extends Fragment { 

     private static String RECORD_ID = "RECORD_ID"; 

     public ViewRecordFragment() { 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
           Bundle savedInstanceState) { 
      /*gridview = (GridView) getActivity().findViewById(R.id.image_grid_view);*/ 

      //Integer recordId = getArguments().getInt(RECORD_ID); 
      //loadImageResourcesAsync(recordId); 

      return inflater.inflate(R.layout.fragment_view_record, container, false); 
     } 

     public static ViewRecordFragment newInstance(Integer recordId) { 
      ViewRecordFragment fragment = new ViewRecordFragment(); 
      //fragment.loadImageResourcesAsync(recordId); 
      /*Bundle bundle = new Bundle(); 
      bundle.putInt(RECORD_ID, recordId); 
      fragment.setArguments(bundle);*/ 
      return fragment; 
     } 

     private void loadImageResourcesAsync(Integer recordId) { 
      new LoadImageResourcesAsync(getActivity()).execute(recordId); 
     } 

    } 
} 

活動的佈局如下。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <fragment 
      android:id="@+id/view_record_fragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 


     <!--<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:id="@+id/view_record_fragment" 
android:name="com.xxx.xxx.view.ViewRecordActivity$ViewRecordFragment" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:layout="@layout/fragment_view_record" />--> 


    </LinearLayout> 

任何幫助,非常感謝。

+1

在你的xml佈局中有一些問題。檢查你的xml的第5行 – Passiondroid

+0

@Passiondroid我添加了xml文件。我沒有看到第5行的問題 –

+0

第5行有片段 –

回答

1

在佈局中添加碎片的基本方法如下所示。你必須提及片段的類名。

<fragment android:name="com.example.android.fragments.HeadlinesFragment" 
      android:id="@+id/headlines_fragment" 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" /> 
+0

我已經這樣做了,這是一樣的例外。請檢查新的編輯。謝謝:) –

+0

嘿謝謝它的工作,現在我可以從這裏建立,非常感謝 –

相關問題