Android ClassNotFoundException: No encontró la clase en el path

Este es el mensaje de excepción que recibo al iniciar la aplicación.

EXCEPCIÓN FATAL: principal Proceso: net.johnhany.opencv3jniPID: 10721 java.lang.RuntimeException: No se puede crear una instancia de actividad ComponentInfo {net.johnhany.opencv3jni / net.johnhany.opencv3jni.MainActivity}: java.lang.ClassNotFoundException: No encontró clase "net.johnhany.opencv3jni.MainActivity" en la ruta: DexPathList [[zip file "/data/app/net.johnhany.opencv3jni-1/base.apk"],nativeLibraryDirectories=[/data/app/net.johnhany. opencv3jni-1lib / arm, / vendor / lib, / system / lib]] en android.app.ActivityThread.performLaunchActivityActivityThread.java:2322) en android.app.ActivityThread.handleLaunchActivityActivityThread.java:2474) en android.app.ActivityThread. ess $ 800 (ActivityThread.java:144) en android.app.ActivityThread $ H.handleMessageActivityThread.java: 1359) en android.os.Handler.sage (Handler.java:102) en android.os.Looper.loopLooper.java: 155) en android.app.ActivityThread.mainActivityThread.java:5696) en java.lang.reflect.Method.invokeNative Method) en java.lang.reflect.Method.invokeMethod.java:372 ) en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.runZygoteInit.java: 1028) en com.android.internal.os.Init.main (ZygoteInit.java:823) Causado por: java.lang.ClassNotFoundException: Didn ' t encontrar la clase "net.johnhany.opencv3jni.MainActivity" en la ruta: DexPathList [[zip file "/data/app/net.johnhany.opencv3jni-1/base.apk"],nativeLibraryDirectories=[/data/app/net. johnhany.opencv3jni-1 / lib / arm / vendor / lib, / system / lib]] en dalvik.system.BaseDexClassLoader.findClassBaseDexClassLoader.java:56) en java.lang.ClassLoader.loadClassClassLoader.java:511) en java.lang .ClassLoader.loadClassClassLoader.java: 469) en android.app.Instrumentation.newActivityInstrumentation.java:1083) en android.app.ActivityThread.performLaunchActivityActivityThread.java:2312) en android.app.ActivityThread.handleLaunchActivityActivityThread.java:2474) en android .app.ActivityThread.ess $ 800 (ActivityThread.java:144) en android.app.ActivityThread $ H.handleMessageActivityThread.java: 1359) en android.os.Handler.sage (Handler.java : 102) en android.os.Looper.loopLooper.java:155) en android.app.ActivityThread.mainActivityThread.java:5696) en java.lang.reflect.Method.invokeNative Method) en java.lang.reflect.Method. invokeMethod.java:372) en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.runZygoteInit.java: 1028) en com.android.internal.os.Init.main (ZygoteInit.java:823) Suprimido: java.lang. ClassNotFoundException: net.johnhany.opencv3jni.ty en java.lang.Class.classForNameNative Method) en java.lang.BootClassLoader.Class (ClassLoader.java:781) en java.lang.BootClassLoader.Class (ClassLoader.java:841) at java.lang.ClassLoader.loadClassClassLoader.java:504) … 13 más Causado por: java.lang.NoClassDefFoundError: Clase no encontrada usando el cargador de clase de arranque; no hay pila disponible 05-18 16: 01: 27.927 645-1928 /? E / ActivityManager: App crashedProcess: net.johnhany.opencv3jni

Yo estaba usando Instant Run en Android Studio y el mismo error me pasó porque estaba instalando el debug.apk que se creó dentro de la carpeta outputs\apk y se vuelve más pequeño y con las clases que faltan porque probablemente fue el resultado de una ejecución instantánea .

Algunos apuntaron en Turning Off de ejecución instantánea, pero en lugar de girar run run, basta con construir el apk haciendo clic en Build->Build apk en el menú y usar ese apk para probar.

Mi problema resuelto usando multi dex:

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

Si no reemplaza la clase de aplicación, edite el archivo de manifiesto para establecer android: nombre en la etiqueta de la siguiente manera:

 <application android:name="android.support.multidex.MultiDexApplication" > ... </application> 

Si reemplaza la clase Application, cámbiela para extender MultiDexApplication (si es posible) de la siguiente manera:

 public class MyApplication extends MultiDexApplication 

O si reemplaza la clase Application pero no es posible cambiar la clase base, entonces puede reemplazar el método attachBaseContext () y llamar a MultiDex.install (this) para habilitar multidex:

 public class MyApplication extends SomeOtherApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 

Normalmente, este error ocurre cuando la aplicación no logra encontrar la actividad del lanzador.

Sugerencias:

  1. Revise su archivo mainfest para ver la actividad del lanzador correcto

  2. Compruebe que su actividad principal se extiende desde la actividad o Appcompatactivity

  3. Limpie el proyecto y vuelva a construirlo.

aquí está mi solución: 1. Cambiar el nombre de la aplicación en AndroidManifest a la ruta completa 2. Proyecto Limpio 3.Rebuild Project 4.Build APK

  • Establecer permanentemente el título DatePickerDialog
  • ¿Ejecutar comandos de Shell a través de código java en Android?
  • Android NumberPicker que oculta los botones de incremento y decremento
  • Uso de MessagePack con Android
  • La lectura de cadena gzip en sqlite3 base de datos (python escribir, Java Android leer)
  • Estado de error: active SupportMapFragment {} ha borrado el índice: -1
  • Eclipse da error al usar GaussianBlur con OpenCV para Android
  • Android, el arranque de matriz de Java no está permitido aquí
  • ¿Dónde colocar setContentView () en onCreate ()?
  • Clase de llamada en ButtonClick (Android)
  • Tween aditivo con Universal Tween Engine en libgdx?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.