java.lang.ClassNotFoundException: no encontró la clase en la ruta: dexpathlist

Actualmente estoy trabajando en un proyecto en el que tengo que usar ndk puramente nativo. Funcionó cuando bash ejecutar un ejemplo de helloworld de la fuente del motor Irrlicht. Luego trato de usarlo en mi proyecto siguiendo el mismo formato de ese ejemplo. Pero tengo:

03-14 01:40:05.308: E/AndroidRuntime(799): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.irrlicht.example1/android.app.POMActivity}: java.lang.ClassNotFoundException: Didn't find class "android.app.POMActivity" on path: DexPathList[[zip file "/data/app/com.irrlicht.example1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.irrlicht.example1-2, /system/lib]] 

mientras ejecuta mi proyecto.

Aquí está mi archivo main.cpp:

 #include  #include  #include  #include "android_tools.h" #ifdef _IRR_ANDROID_PLATFORM_ void android_main(android_app* app) { __android_log_print(4 , "pom" , "nothing"); } 

#terminara si

en Android.mk:

 LOCAL_PATH := $(call my-dir)/.. IRRLICHT_PROJECT_PATH := $(LOCAL_PATH) include $(CLEAR_VARS) LOCAL_MODULE := Irrlicht LOCAL_SRC_FILES := /home/karthik/Android/Essentials/ogl-es/lib/Android/libIrrlicht.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := HelloWorldMobile1 LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ -pipe -fno-exceptions -fno-rtti -fstrict-aliasing LOCAL_C_INCLUDES := -I ../../include -I /home/karthik/Android/Essentials/ogl-es/include -I /home/karthik/Android/json/jsoncpp-src-0.5.0/libs/linux-gcc-4.8 -I /home/karthik/Android/json/jsoncpp-src-0.5.0/include/json LOCAL_SRC_FILES := android_tools.cpp main.cpp LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid -ldl LOCAL_STATIC_LIBRARIES := Irrlicht android_native_app_glue include $(BUILD_SHARED_LIBRARY) $(call import-module,android/native_app_glue) 

Y he dado el nombre de la actividad en AndroidManifest.xml:

  ...    

¿Cuál es el error que estoy haciendo aquí? Publicare el código completo si es necasario.

Tuve un problema similar, esta es mi solución:

  1. Haga clic derecho en su proyecto y seleccione Propiedades .
  2. Seleccione Java Build Path en el menú de la izquierda.
  3. Selecciona la pestaña Ordenar y Exportar .
  4. De la lista, asegúrese de que las bibliotecas o jarras externas que agregó a su proyecto estén marcadas .
  5. Finalmente, limpia tu proyecto y ejecuta.

También puedes verificar esta respuesta.

Intenté todas las opciones posibles pero el resultado es cero. Finalmente encontré la solución correcta que es útil para mí. Simplemente vaya a desactivar la ejecución instantánea Vaya a Archivo -> Configuración -> Comstackción, Ejecución, Despliegue -> Ejecución instantánea -> Desactive la checkbox para ejecución instantánea . Ejecute su aplicación una vez y este archivo apk funcione correctamente.

Esto parece ser un problema en tu caso. La ruta relativa de su actividad en manifiesto no es correcta:

  

reemplazar esto con:

  

o

  

Debería entender el problema solo con ver

errores de dex

Pero tomó medio día arreglar el problema.
Lo soluciono siguiendo las instrucciones de la página de desarrolladores de Android: https://developer.android.com/studio/build/multidex.html

Primero agregue esto al archivo gradle.build:

 defaultConfig { ... minSdkVersion 14 targetSdkVersion 21 ... // Enabling multidex support. multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.0' } 

A continuación, amplíe la clase de aplicación (o declare la clase de aplicación en AndroidManifest.xml o anule la función attachBaseContext() con la clase MultiDexApplication como se indica en el enlace anterior.

Eso es todo y resolvió el problema.

La eliminación de la aplicación en el dispositivo y la limpieza del proyecto funciona para mí

Esta excepción también puede ocurrir cuando tienes una vista personalizada en tu diseño como esta:

  

y cambia el nombre del paquete de la vista de “com.example” a algo diferente, pero también se olvida de cambiarlo en el diseño.

  1. eliminar la carpeta bin
  2. cambiar el orden de las bibliotecas
  3. limpiar y reconstruir

trabajó para mi.

Lo resolví usando: ./gradlew --stop command en la terminal de android studio. Después de realizar este comando, limpie y reconstruya el proyecto.

Para cualquiera que tenga habilitación multidex escribe esto

dentro de build.gradle

 apply plugin: 'com.android.application' android { defaultConfig { multiDexEnabled true } dexOptions { javaMaxHeapSize "4g" } } dependencies { compile 'com.android.support:appcompat-v7:+' compile 'com.google.android.gms:play-services:+' compile 'com.android.support:multidex:1.0.1' } 

escribe una clase EnableMultiDex como abajo

 import android.content.Context; import android.support.multidex.MultiDexApplication; public class EnableMultiDex extends MultiDexApplication { private static EnableMultiDex enableMultiDex; public static Context context; public EnableMultiDex(){ enableMultiDex=this; } public static EnableMultiDex getEnableMultiDexApp() { return enableMultiDex; } @Override public void onCreate() { super.onCreate(); context = getApplicationContext(); } } 

y en AndroidManifest.xml escribe este nombre de clase dentro de la etiqueta de la aplicación

   

Solo prueba Clean Project & Rebuild Project .

Si el proyecto se estaba comstackndo, simplemente borre la caché usando:

./gradlew clean

o

./gradlew cleanBuildCache

o para ventanas

gradlew cleanBuildCache

https://developer.android.com/studio/build/build-cache.html

No necesitamos tener una clase de aplicación personalizada que extienda MultiDexApplication . En cambio, podemos tener esto en AndroidManifest.xml

  

Y junto con esto en build.gradle (Módulo: aplicación),

 defaultConfig { ... // Enabling multidex support. multiDexEnabled true } dependencies { ... compile 'com.android.support:multidex:1.0.2' } 

Gracias.

Simplemente cambie el nombre de su carpeta de lib a libs ,

Luego verá algunas marcas de error en su proyecto para resolver este derecho. Haga clic en proyecto>

Properties > Java Build Path > libraries :

Elimine toda la biblioteca con marcas rojas, luego apply > ok > después de eso, limpie su proyecto . TADA ve la magia 🙂

después de probar las respuestas dadas, descubrí otra razón para la misma Excepción, que tuve que agregar la biblioteca que estoy usando manualmente a mi biblioteca principal a través de

 Right click on my main library > Properties > Android > Go to the very bottom of the screen and click (Add) > Select my other library that caused the crash > Apply 

antes de esta solución, utilicé la “configuración de Fix Project” desde el archivo .java en eclipse, pero esto no funcionó, así que tuve que agregarlo manualmente aquí y funcionó

Cuando usa multidex, intente ampliar su clase de aplicación con MultiDexAppication en lugar de la aplicación y anule el método que se indica a continuación para Android debajo de 5.0 (porque 5.0 y superior soportan el multidex)

 @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(BaseApplication.this); } 

y en dependencias agregar esto

 compile 'com.android.support:multidex:1.0.1' 

Me enfrenté a este problema varias veces y todos se resuelven al deshabilitar la ejecución instantánea .

Me estaba dando esta caída solo en dispositivos Samsung Lollipop y esta solución funcionó para mí.

 dexOptions { preDexLibraries false } 

Estoy publicando esta respuesta aquí porque esta pregunta es actualmente el resultado de búsqueda mejor clasificado en Google para este locking y ninguna de las respuestas anteriores funcionó para mí.

La siguiente solución funcionó para mí …

Intenté todo lo mencionado anteriormente pero todavía no ejecuté mi aplicación. Tengo la aplicación de react-native ejecutándose en la última versión de gradle 4+ y el estudio de Android.

Tuve el problema de que si ejecuto react-native run-android estaba fallando con el problema diciendo que no puede encontrar la clase MainApplication … es decir, ClassNotFoundException

Pude resolver el problema cuando actualicé mi gradle.properties para usar el comstackdor D8.

Yo añadí:

android.enableD8 = true

a mi gradle.properties

Detalles del documento aquí: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

En mi caso, este problema surgió debido a Kotlin. En mi código existente había una clase que fue escrita Kotlin. Creé la aplicación, se instaló y tan pronto como la primera actividad se abrió, la aplicación se bloqueó. en el logcat se mostraba este error. Luego actualicé mi versión de Kotlin del sitio web de Kotlin en el archivo gradle de la aplicación. Cree la aplicación nuevamente y funcionó bien entonces.

Si recibe este error después de eliminar alguna dependencia de Gradle, verifique su manifiesto y asegúrese de haber eliminado todas las entradas correspondientes a esa dependencia.

Según mi comprensión, recibo el problema después de la actualización de android studio 2.1 a 2.3 debido a la función instantánea de que mi aplicación no se ejecutará cuando copie el apk de la salida y lo coloque en la tarjeta sd. Para este problema, creo el apk de la opción de comstackción do build apk en android studio.

Para mí, el problema apareció después de que creé una APK firmada. Para solucionarlo, generé una nueva aplicación de depuración usando Run / Build APK. Después de eso, Run (cmd + r) funciona nuevamente sin este error.

Si está habilitado minifyEnabled y shrinkResources en true en su archivo gradle de aplicación. Necesita agregar la siguiente línea en el archivo proguard-rules.pro

-keep class com.yourpackage_name. ** {*; }

porque la minificación se elimina algunas clases importantes en nuestro archivo apk.

Tuve este problema antes y los comentarios aquí me ayudaron en el pasado, pero esta vez no. Revisé mi configuración de Proguard y eliminé las siguientes líneas y luego funcionó, por lo que Proguard puede tener algo que ver con este error:

  -optimizationpasses 5 -overloadaggressively -repackageclasses '' -allowaccessmodification -dontskipnonpubliclibraryclassmembers 

Estaba enfrentando el mismo problema. Intenté todo lo posible por un día, pero nada funcionó. La dependencia que causaba problemas era utilizar sdk de comstackción más bajo, sdk de destino y sdk mínimo. Creé el módulo de la biblioteca para el proyecto, copié todas las fonts y coincidí con las versiones de sdk con las versiones de sdk de la aplicación. Y finalmente funcionó a las mil maravillas.

Tuve el mismo error y algunas respuestas me engañaron sobre un problema para principiantes. Tenía el paquete incorrecto en mi descriptor de vista personalizado como a continuación. Espero que ayude a alguien.