para - crash bandicoot android+emulador
FragmentActivity causando la excepción ClassNotFoundException (8)
Acabo de usar el Administrador del SDK de Android para actualizar las Herramientas del SDK de Android a la revisión 17, y la Compatibilidad de Android con la revisión 7. Ahora, el programa que he estado ejecutando durante años se bloquea en el inicio.
Al reducir el problema, he creado un nuevo proyecto en blanco, he agregado android-support-v4.jar a la ruta de compilación, y he cambiado la Actividad a FragmentActivity y eso es todo. Ahora se estrella.
El mensaje de error es:
java.lang.ClassNotFoundException: com.example.test.TestActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.test-2.apk]
El código es:
package com.example.test;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class TestActivity extends FragmentActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Todo lo demás, incluido el manifiesto, no se modifica con respecto a los valores predeterminados. ¡Cualquier ayuda es muy apreciada!
Edición: Manifiesto incluido a continuación:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="9" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
¿Supongo que la actividad del fragmento está listada en el manifiesto correctamente? Aquí está mi clase principal de FragmentActivity en el Manifiesto:
<activity android:name=".Polling" android:label="@string/app_name"
android:windowSoftInputMode="stateHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
El mismo problema se resolvió al crear la ruta de compilación-> Configurar la ruta de compilación-> ordenar y exportar-> marcar Agregar bibliotecas privadas-> ok.
Luego limpia el proyecto.
Hecho un gran problema resuelto.
Resulta que es un problema con Android SDK Tools r17. Anteriormente había estado usando el método dado en el tutorial en:
http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/
Sin embargo, esto ya no funciona. En su lugar, todo lo que tenía que hacer era hacer clic derecho en mi proyecto en Eclipse y elegir Herramientas de Android -> Agregar biblioteca de soporte ...
Hacer esto significa que ya no es necesario ir a Java Build Path y hacer clic en "Agregar JAR externos ..."
Muchas gracias a eMich por esta solución de: problema con el archivo ADT r17
También tuve el mismo problema y lo resolví de la siguiente manera. Si, por algún motivo, NO SE HA COMPROBADO con las bibliotecas privadas de la ruta de compilación, agregue el jar de Androidv-4 en la ruta de compilación y habilítelo (marque) en la pestaña "Ordenar y exportar"
Tuve el mismo problema y ninguna de las respuestas que encontré en resolvió mi problema. Después de horas de varias (muchas) pruebas y errores, resolví mi problema configurando la ruta de compilación de mi proyecto. En Eclipse, haga clic con el botón derecho en el proyecto> Build Path
> Configure Build Path...
, en la pestaña Order and Export
, verifique Android Private Libraries
y haga OK
en OK
. Después de eso, limpie el proyecto e intente ejecutar de nuevo.
Resolví este problema comparando mi proyecto con otro proyecto (recién creado) que podría ejecutarse como se esperaba. Comparé cada configuración y AndroidManifest.xml de ellos.
Espero que esto le ayude también :)
ACTUALIZACIÓN Otra solución: utilizando ANT
Encontré otra forma de resolver este problema: usando ANT. Mi amigo enfrentó el mismo problema, pero arreglar el camino de construcción no solucionó su problema. No sé si fue porque usamos una versión IDE diferente, una versión ADT diferente o un sistema operativo diferente (yo uso GNU / Linux). Y luego, le sugerí que usara ANT en lugar del IDE.
Primero, configure el proyecto (cree build.xml
) ejecutando el android update project -p <project-dir> -n <project-name>
para cada proyecto (incluidos los proyectos de biblioteca). Y luego, desde el directorio principal del proyecto, ejecute ant debug
para construir, ant installd
para instalar y ejecute la aplicación.
Lo extraño fue que, una vez que tuvo éxito de esta manera, incluso puede compilar usando IDE de nuevo, sin ANT en absoluto.
seleccione su proyecto en el Explorador de paquetes> haga clic con el botón derecho en él> Herramientas de Android> Reparar propiedades de proyecto y también Pruebe Proyecto> Limpiar
Entonces vuelva a ejecutar.
tengo el
java.lang.NoClassDefFoundError: com.android.example.SupportFragment
at com.android.example.SupportFragmentActivity.onCreate()
en PopupMenu
SupportFragment extends SherlockFragment implements PopupMenu.OnMenuItemClickListener
...
@Override
public boolean onMenuItemClick(android.view.MenuItem item) {
return onOptionsItemSelected(item);
}
al intentar hacer que una aplicación api 17 sea compatible con api 8, la única indicación fue el error logcat anterior, así que verifique que todas sus clases importadas sean compatibles si recibe este error.