2016-02-21 133 views
-1

我已經無數次地研究過這個問題,並且一步一步跟着大量的教程,並且似乎無法讓我的應用程序加載而沒有此錯誤。Android片段錯誤:錯誤膨脹類片段

02-21 11:15:46.759 2624-2624/com.example.brandon.transitioningfragments E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.brandon.transitioningfragments, PID: 2624 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.brandon.transitioningfragments/com.example.brandon.transitioningfragments.MainActivity}: android.view.InflateException: Binary XML file line #42: Binary XML file line #42: Error inflating class fragment 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    Caused by: android.view.InflateException: Binary XML file line #42: Binary XML file line #42: Error inflating class fragment 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
    at android.app.Activity.setContentView(Activity.java:2166) 
    at com.example.brandon.transitioningfragments.MainActivity.onCreate(MainActivity.java:18) 
    at android.app.Activity.performCreate(Activity.java:6237) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:148)  
    at android.app.ActivityThread.main(ActivityThread.java:5417)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
    Caused by: android.view.InflateException: Binary XML file line #42: Error inflating class fragment 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)  
    at android.app.Activity.setContentView(Activity.java:2166)  
    at com.example.brandon.transitioningfragments.MainActivity.onCreate(MainActivity.java:18)  
    at android.app.Activity.performCreate(Activity.java:6237)  
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:148)  
    at android.app.ActivityThread.main(ActivityThread.java:5417)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
    Caused by: java.lang.RuntimeException: [email protected] must implement OnFragmentInteractionListener 
    at com.example.brandon.transitioningfragments.StartFragment.onAttach(StartFragment.java:83) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:932) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126) 
    at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1228) 
    at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2201) 
    at android.app.FragmentController.onCreateView(FragmentController.java:98) 
    at android.app.Activity.onCreateView(Activity.java:5546) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)  
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)  
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)  
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
    at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)  
    at android.app.Activity.setContentView(Activity.java:2166)  
    at com.example.brandon.transitioningfragments.MainActivity.onCreate(MainActivity.java:18)  
    at android.app.Activity.performCreate(Activity.java:6237)  
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
    at android.app.ActivityThread.-wrap11(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:148)  
    at android.app.ActivityThread.main(ActivityThread.java:5417)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  

以下是我的MainActivity jar文件和XML文件

public class MainActivity extends Activity { 

Fragment fragment; 
Button btn1, btn2, btn3; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    btn1 = (Button)findViewById(R.id.button); 
    btn2 = (Button)findViewById(R.id.button2); 
    btn3 = (Button)findViewById(R.id.button3); 

    FragmentManager fm = getFragmentManager(); 
    FragmentTransaction ft = fm.beginTransaction(); 

    StartFragment myFragment = new StartFragment(); 
    ft.add(R.id.myFragment, myFragment); 
    ft.commit(); 



} 
} 

<?xml version="1.0" encoding="utf-8"?> 
<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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.brandon.transitioningfragments.MainActivity"> 


<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:weightSum="1"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Fragment 1" 
     android:id="@+id/button" 
     android:layout_gravity="center_horizontal" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Fragment 2" 
     android:id="@+id/button2" 
     android:layout_gravity="center_horizontal" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Fragment 3" 
     android:id="@+id/button3" 
     android:layout_gravity="center_horizontal" /> 

    <fragment 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
       android:name="com.example.brandon.transitioningfragments.StartFragment" 
     android:id="@+id/myFragment" 
     android:layout_gravity="center_horizontal" /> 

</LinearLayout> 
</RelativeLayout> 
+1

這就是如何結束複製和粘貼沒有理解......你是從onAttach的StartFragment – Selvin

回答

0
Caused by: java.lang.RuntimeException: [email protected] must implement OnFragmentInteractionListener 

MainActivity需要實現OnFragmentInteractionListener,由於東西,你是在StartFragmentonAttach()做。

此外,您的代碼似乎試圖使用StartFragment作爲靜態片段(通過<fragment>)和作爲動態片段(通過FragmentTransaction)。這是不可能的,這是你真正想要的。選擇一種方法。

+0

扔這個例外是的,這工作。這是我的一個非常愚蠢的錯誤,謝謝你幫助我! –