No se puede instanciar fragmento – java.lang.RuntimeException

Hy chicos, tengo este seguimiento de la pila de mi consola de desarrollo. Bueno, no estoy seguro de qué causa este accidente. porque nunca consigo este error por mi uno mismo cuando pruebe mi app y apenas lo conseguí de la consola del revelador en el juego de google.

java.lang.RuntimeException: Unable to start activity ComponentInfo{package.name/package.name.activity.SomeActivity}: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment package.name.photopreview.PhotoThumbnailFragmentAdapter$1: make sure class name exists, is public, and has an empty constructor that is public at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) at android.app.ActivityThread.access$700(ActivityThread.java:140) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4921) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) at dalvik.system.NativeStart.main(Native Method) Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment streetdirectory.mobile.modules.photopreview.PhotoThumbnailFragmentAdapter$1: make sure class name exists, is public, and has an empty constructor that is public at android.support.v4.app.Fragment.instantiate(Fragment.java:399) at android.support.v4.app.FragmentState.instantiate(Fragment.java:97) at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1760) at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:200) at streetdirectory.mobile.modules.businessdetail.BusinessDetailActivity.onCreate(BusinessDetailActivity.java:134) at android.app.Activity.performCreate(Activity.java:5188) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074) ... 11 more Caused by: java.lang.InstantiationException: can't instantiate class streetdirectory.mobile.modules.photopreview.PhotoThumbnailFragmentAdapter$1; no empty constructor at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1319) at android.support.v4.app.Fragment.instantiate(Fragment.java:388) ... 18 more 

¿alguien puede ayudarme a analizar este problema? y me da alguna sugerencia útil. Gracias y Saludos ..

EDITAR

Este es el código PhotoPreviewFragmentAdapter.

 public class PhotoPreviewFragmentAdapter<T extends ImageListServiceOutput> extends FragmentPagerAdapter { private ArrayList<T> mData = new ArrayList<T>(); public PhotoPreviewFragmentAdapter(FragmentManager fm) { super(fm); } public void setData(ArrayList<T> data) { mData = data; } @SuppressLint("ValidFragment") @Override public Fragment getItem(final int position) { PhotoPreviewFragment view = new PhotoPreviewFragment() { @Override public ImageListServiceOutput getData() { if (position < mData.size()) { return mData.get(position); } return null; } }; return view; } @Override public int getCount() { // TODO Add Photo Button //return mData.size()+1; return mData.size(); } } 

dar alguna pista sobre cómo reproducir este accidente puede ser me va a ayudar mucho. Gracias

EDITAR

Puede ser el problema es (al igual que Streets Of Boston dijo) la clase interna anónima en PhotoTumbnailFragmentAdapter, lo usé en este método

 public Fragment getItem(final int position) { PhotoThumbnailFragment view = new PhotoThumbnailFragment() { @Override public ImageListServiceOutput getData() { if (position < mData.size()) { return mData.get(position); } return null; } public void onPhotoClicked(ImageListServiceOutput data) { if (mImageClickedListener != null) { if (data != null) { Logger.info("Photo Clicked"); mImageClickedListener.onImageClicked(data, position); } else { Logger.info("Add Photo Clicked"); mImageClickedListener.onAddImageClicked(position); } } } }; return view; } 

PhotoThumbnailFragment es una clase independiente btw.

Parece que no has definido el constructor vacío para tu PhotoThumbnailFragmentAdapter . Fragmento debe tener un constructor vacío como

 public PhotoThumbnailFragmentAdapter(){ //empty constructor } 
  1. Haz de tu clase PhotoPreviewFragment una clase pública y estática . En este momento, su PhotoPreviewFragment es una clase interna no estática (es decir, tiene una clase de inclusión, en su caso, la clase PhotoPreviewFragmentAdapter ), que no puede ser instanciada públicamente.

  2. Asegúrese de tener un public public constructor vacío PhotoPreviewFragment() {... ...} .

Solución:
Refactore su PhotoPreviewFragment a una clase interna pública apropiada o simplemente a una clase pública en su propio archivo Java.
Asegúrese de agregar un constructor vacío público.

no puedo comentar, por lo tanto, publicar como una respuesta, por favor, vaya a través de este enlace puede ser que esto ayudará Fragmento – InstantiationException: no vacío Constructor -> Google Maps v2?

y esto

¿Los fragmentos realmente necesitan un constructor vacío?

  • Fragmento isAdded () devuelve false en un Fragmento ya agregado
  • Fragmento de acceso del adaptador
  • ListView dentro de un fragmento utilizado en un ViewPager no se comporta como se esperaba
  • Cómo reemplazar LongPress en ListFragment?
  • ¿La API de ICS de Android tiene un equivalente nativo a la biblioteca de soporte de ViewPager?
  • Fragmento de actualización en la selección de opciones de fragmentos de diálogo
  • Error de orientación de conmutación: Fragmento de error - ID de duplicado, etiqueta o identificador de origen 0x0
  • Android Fragments getView devolver el padre de la vista?
  • Android Fragment, Force View para liberar manualmente
  • Android Spinner Dropdown flecha que no se muestra
  • Extender FragmentActivity en lugar de Activity
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.