2016-06-27 8 views
1

Ich versuche, einen Image Slider mit 4 Bildern für meine Anwendung zu erstellen, und ich habe die folgenden Fehler aufgetreten. Ich habe versucht zu suchen und habe ähnliche Titel gefunden, aber die Probleme sind unterschiedlich. Dies ist der logcat:java.lang.RuntimeException: Aktivität kann nicht gestartet werden ComponentInfo: android.view.InflateException

example.prgguru.com.wallit E/AndroidRuntime: FATAL EXCEPTION: main 
Process: example.prgguru.com.wallit, PID: 32048 
java.lang.RuntimeException: Unable to start activity ComponentInfo{example.prgguru.com.wallit/example.prgguru.com.wallit.MainActivity}: android.view.InflateException: Binary XML file line #3: Error inflating class fragment 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2404) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464) 
at android.app.ActivityThread.access$900(ActivityThread.java:172) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:146) 
at android.app.ActivityThread.main(ActivityThread.java:5653) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #3: Error inflating class fragment 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:470) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:350) 
at android.app.Activity.setContentView(Activity.java:2059) 
at example.prgguru.com.wallit.MainActivity.onCreate(MainActivity.java:13) 
at android.app.Activity.performCreate(Activity.java:5541) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2368) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464) 
at android.app.ActivityThread.access$900(ActivityThread.java:172) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:146) 
at android.app.ActivityThread.main(ActivityThread.java:5653) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class example.prgguru.com.wallit.MainActivityFragment that is not a Fragment 
at android.app.Fragment.instantiate(Fragment.java:585) 
at android.app.Fragment.instantiate(Fragment.java:561) 
at android.app.Activity.onCreateView(Activity.java:5066) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:470) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:350) 
at android.app.Activity.setContentView(Activity.java:2059) 
at example.prgguru.com.wallit.MainActivity.onCreate(MainActivity.java:13) 
at android.app.Activity.performCreate(Activity.java:5541) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2368) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464) 
at android.app.ActivityThread.access$900(ActivityThread.java:172) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:146) 
at android.app.ActivityThread.main(ActivityThread.java:5653) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassCastException 
at android.app.Fragment.instantiate(Fragment.java:585) 
at android.app.Fragment.instantiate(Fragment.java:561) 
at android.app.Activity.onCreateView(Activity.java:5066) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:470) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:350) 
at android.app.Activity.setContentView(Activity.java:2059) 
at example.prgguru.com.wallit.MainActivity.onCreate(MainActivity.java:13) 
at android.app.Activity.performCreate(Activity.java:5541) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2368) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2464) 
at android.app.ActivityThread.access$900(ActivityThread.java:172) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:146) 
at android.app.ActivityThread.main(ActivityThread.java:5653) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) 
at dalvik.system.NativeStart.main(Native Method) 

Das ist mein Haupt Activity.java:

package example.prgguru.com.wallit; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends Activity { 

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

Das ist mein activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 

<fragment 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:name="example.prgguru.com.wallit.MainActivityFragment" 
android:id="@+id/fragment" 
tools:layout="@layout/fragment_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" /> 

fragment_main ist. xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#32383d"> 
<!-- ViewPager --> 

<!-- Footer --> 
<android.support.v4.view.ViewPager 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/imageviewPager" /> 
<include layout="@layout/footer"/> 

</FrameLayout> 

MainActivityFragment.java

package example.prgguru.com.wallit; 

import android.support.v4.app.Fragment; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.ImageView; 

public class MainActivityFragment extends Fragment { 
private ViewPager _mViewPager; 
private ImageViewPagerAdapter _adapter; 
private ImageView _btn1, _btn2, _btn3,_btn4; 
public MainActivityFragment() { 
} 
@Override 
public void onViewCreated(View view, Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    setUpView(); 
    setTab(); 
    onCircleButtonClick(); 
} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.fragment_main, container, false); 
} 
private void onCircleButtonClick() { 
    _btn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      _btn1.setImageResource(R.drawable.fill_circle); 
      _mViewPager.setCurrentItem(0); 
     } 
    }); 
    _btn2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      _btn2.setImageResource(R.drawable.fill_circle); 
      _mViewPager.setCurrentItem(1); 
     } 
    }); 
    _btn3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      _btn3.setImageResource(R.drawable.fill_circle); 
      _mViewPager.setCurrentItem(2); 
     } 
    }); 
    _btn4.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      _btn4.setImageResource(R.drawable.fill_circle); 
      _mViewPager.setCurrentItem(3); 
     } 
    }); 
} 
private void setUpView() { 
    _mViewPager = (ViewPager) getView().findViewById(R.id.imageviewPager); 
    _adapter = new ImageViewPagerAdapter(getActivity(), getFragmentManager()); 
    _mViewPager.setAdapter(_adapter); 
    _mViewPager.setCurrentItem(0); 
    initButton(); 
} 
private void setTab() { 
    _mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()                             { 
     @Override 
     public void onPageScrollStateChanged(int position) { 
     } 
     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 
     @Override 
     public void onPageSelected(int position) { 
      // TODO Auto-generated method stub 
      _btn1.setImageResource(R.drawable.holo_circle); 
      _btn2.setImageResource(R.drawable.holo_circle); 
      _btn3.setImageResource(R.drawable.holo_circle); 
      _btn4.setImageResource(R.drawable.holo_circle); 
      btnAction(position); 
     } 
    }); 
} 
private void btnAction(int action) { 
    switch (action) { 
     case 0: 
      _btn1.setImageResource(R.drawable.fill_circle); 
      break; 
     case 1: 
      _btn2.setImageResource(R.drawable.fill_circle); 
      break; 
     case 2: 
      _btn3.setImageResource(R.drawable.fill_circle); 
      break; 
     case 3: 
      _btn4.setImageResource(R.drawable.fill_circle); 
      break; 
    } 
} 
private void initButton() { 
    _btn1 = (ImageView) getView().findViewById(R.id.btn1); 
    _btn1.setImageResource(R.drawable.fill_circle); 
    _btn2 = (ImageView) getView().findViewById(R.id.btn2); 
    _btn3 = (ImageView) getView().findViewById(R.id.btn3); 
    _btn4 = (ImageView) getView().findViewById(R.id.btn4); 
} 
private void setButton(Button btn, String text, int h, int w) { 
    btn.setWidth(w); 
    btn.setHeight(h); 
    btn.setText(text); 
} 
} 
+0

verwenden Sie benutzerdefinierte Bildansicht oder benutzerdefinierte Ansicht in Ihrem XML? – Anjali

+0

Ihr tatsächlicher Fehler ist: verursacht durch: java.lang.ClassCastException bei example.prgguru.com.wallit.MainActivity.onCreate (MainActivity.java:13) – Anjali

+2

Mit Unterstützung 'Fragment's, müssen Sie stattdessen' AppCompatActivity' verwenden von 'Aktivität'. –

Antwort

0

Ihre Activity erstreckt sich von Activity und nicht AppCompatActivity. Aber dein Fragment erstreckt sich von android.support.v4.app.Fragment. Sie müssen eine Art von Fragment verwenden: von der Support-Bibliothek oder von der normalen. Versuchen Sie in Ihrer Fragmentklasse extends Fragment von android.app.Fragment zu ändern.

+0

Ich habe die Erweiterung von Activity in AppCompatActivity geändert und es hat funktioniert. Vielen Dank! –

Verwandte Themen