ActionBarSherlock-El tipo android.apoyo.v4.app.El fragmento no se puede resolver. Se hace referencia indirectamente desde requerido.archivos de clase


Estoy usando ActionBarSherlock como un proyecto de biblioteca en un proyecto que es una biblioteca en sí. Todo estaba funcionando bien hasta que moví el proyecto a un nuevo equipo y actualizé las herramientas del SDK.

Tengo este error que no entiendo. Cuando creo una clase extendiendo SherlockFragment como esta:

import com.actionbarsherlock.app.SherlockFragment;

public class SomeFragment extends SherlockFragment {
    ... 
}

Tengo el siguiente error de compilación:

The type android.support.v4.app.Fragment cannot be resolved. It is indirectly referenced from required .class files

He comprobado lo siguiente:

  • ActionBarSherlock se importa como una biblioteca
  • No aparente errores en la ruta de compilación (sin cruz roja) y actionbarsherlock.jar está presente
  • La biblioteca de soporte está en el proyecto ActionBarSherlock y NO en otros proyectos dependientes

¿Algo más?

Author: znat, 2013-05-16

9 answers

Tuve el mismo problema que usted desde que había actualizado el SDK. He resuelto mi problema haciendo esto (en eclipse):

  • Haga clic derecho en la barra de acciones biblioteca sherlock => Properties => Java Build Path => Order and Export tab = > comprobar android support v4 o Android Private Libraries y seleccionar Ok
  • Haga clic derecho en su proyecto personal y vaya a properties = > java build path = > check Android Private Libraries
  • Limpia ambos proyectos, debería funcionar.
 67
Author: Sébastien BATEZAT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-13 08:08:34

La respuesta de Sebastien en realidad me llevó a la solución. Sin embargo, es importante mencionar que la biblioteca de soporte debe agregarse manualmente a la ruta de compilación para poder verificarla para exportarla. Para referencia futura, aquí están los pasos que resolvieron el problema para mí:

  1. Asegúrese de que la biblioteca de soporte está en la carpeta libs del proyecto ABS y en ningún otro lugar
  2. Haga clic con el botón derecho en la biblioteca {>Ruta de compilación {>Añadir a la ruta de compilación
  3. Haga clic con el botón derecho en el proyecto ABS -- >Properties Java > Java Build Path > > Order and Export > > Check the android-support-v4.jar file and save
  4. Haga clic con el botón derecho en el proyecto donde ha incluido ABS Properties > Propiedades Java > Ruta de compilación de Java > > Ordenar y exportar Check > Compruebe las "Bibliotecas privadas de Android" y guarde
  5. Si tiene proyectos adicionales en su jerarquía de dependencias, haga el paso 4 para todos estos proyectos
  6. Limpia todo el espacio de trabajo (o todos los proyectos afectados) y espera lo mejor.

Sin Embargo, es un misterio para mí por qué esto tiene que ser tan complicado - como Josh mencionó, Eclipse en combinación con Android y grandes proyectos con un par de dependencias es difícil de usar y espero que esto se mejore en un futuro cercano.

 11
Author: endowzoner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-16 23:07:37

En mi caso estoy usando 2 bibliotecas de Android que requieren la biblioteca de soporte de Android. El problema era que ambas bibliotecas tenían diferentes versiones de la biblioteca de soporte de Android.

Para resolver el problema: haga clic con el botón derecho en library project => Android Tools => Add Support Library.

Repita esta acción para cada biblioteca.

 10
Author: Carlos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-05 15:48:17

Yo tenía el mismo problema. Había 2 bibliotecas diferentes. Eliminar biblioteca de soporte de su proyecto principal

 8
Author: SpeedEX505,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-23 10:16:42

Aquí está la solución más simple:

Haga clic derecho en la carpeta del proyecto - > Ruta de compilación - > Configurar ruta de compilación - > Agregar Jars externos (Desde la pestaña bibliotecas)- > seleccionar "android-support-v4.archivo jar".

(Estará ubicado en la carpeta Android SDK aquí está la ruta genérica "android-sdk \ extras \ android \ support \ v4").

Después de este proyecto limpio y feliz codificación...

 4
Author: Ahsanwarsi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-19 09:43:04

Me enfrenté al mismo problema en mi caso lo resolví haciendo clic derecho en el proyecto - > Ruta del Buid - > Configurar ruta de compilación - > "seleccionar Android de la lista de la izquierda" -> "seleccione la casilla de verificación para el objetivo del proyecto de compilación desde el panel derecho" -> haga clic en Aplicar -> haga clic en Aceptar

 1
Author: Alok D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-04 23:41:05

Lo que funcionó para mí fue un poco diferente a las soluciones de @Sebastien y @FleshWound arriba en el hilo.

  • Copiado el archivo "android-support-v4.jar " from / MyProject/ libs /and overwrote the one at/ActionBarSherlock/libs / android-support-v4.frasco.
  • Fue a "Project Properties" -> "Java Build Path" -> "Add" -> ActionBarSherlock project.
  • Proyecto limpio.
 0
Author: Himadri Pant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-24 03:48:53

Estaba usando Android Studio y me enfrenté a un problema similar(para cargar ListFragment). Inicialmente había importado biblioteca:

Importar android.apoyo.v4.app.ListFragment;

Y luego se actualizó la compilación.gradle inside app diectory: Asegúrate de que la sección dependencias incluya bibliotecas de soporte -

  dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0 }
 0
Author: Dhwaneel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-05 03:33:46

Soy nuevo en stackoverflow. Sin embargo, esta es mi solución o experiencia aquí. Resolví esto por las propiedades del proyecto Android > 'Android' en el Panel izquierdo Add > Agregar Select > Seleccione la biblioteca de soporte requerida en el menú desplegable> > 'Aplicar'OK > OK

Esto lo consiguió. Esto funcionó incluso cuando 'Bibliotecas privadas de Android' no estaba marcada de 'Orden y exportación' de la ruta de compilación de Java.

 0
Author: Achal Kagwad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-12 19:25:38