Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Clase no encontrada error, pero la clase definitivamente existe

OK, así que tengo un proyecto en Android Studio, pero cuando ejecuto la aplicación en el emulador, se bloquea. En el rastreo de pila, hay una excepción de clase no encontrada para la clase de actividad principal y, según mi entendimiento, apunta a una línea con una simple llave de cierre para una sentencia if.

Aquí está el rastreo de la pila:

02-21 14:49:44.498 2362-2362/com.example.user.assignment1 E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.user.assignment1, PID: 2362 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.user.assignment1/com.example.user.assignment1.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.user.assignment1.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.user.assignment1-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.user.assignment1.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.user.assignment1-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.Instrumentation.newActivity(Instrumentation.java:1065) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Suppressed: java.lang.NoClassDefFoundError: com.example.user.assignment1.MainActivity at dalvik.system.DexFile.defineClassNative(Native Method) at dalvik.system.DexFile.defineClass(DexFile.java:226) at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219) at dalvik.system.DexPathList.findClass(DexPathList.java:321) at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54) ... 14 more Suppressed: java.lang.ClassNotFoundException: com.example.user.assignment1.MainActivity at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 13 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

Puesto que no puedo calcular hacia fuera donde está el error, voy a fijar el código aquí también:

 package com.example.user.assignment1; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.Random; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void left_click(View view) { Button l=(Button) findViewById(R.id.left); Button r=(Button) findViewById(R.id.right); int l1 = Integer.parseInt(l.getText().toString()); int r1 = Integer.parseInt(r.getText().toString()); TextView t=(TextView) findViewById(R.id.label); if(l1>r1) { t.setText("Correct! "+l1+" is bigger!"); } else { t.setText("Sorry! " + r1 + " is bigger!"); } Random ran = new Random(); int random = ran.nextInt(100); l.setText(random); r.setText(random); } public void right_click(View view) { Button l=(Button) findViewById(R.id.left); Button r=(Button) findViewById(R.id.right); int l1 = Integer.parseInt(l.getText().toString()); int r1 = Integer.parseInt(r.getText().toString()); TextView t=(TextView) findViewById(R.id.label); if(l1<r1) { t.setText("Correct! "+r1+" is bigger!"); } else { t.setText("Sorry! " + l1 + " is bigger!"); } Random ran = new Random(); int random = ran.nextInt(100); l.setText(random); r.setText(random); } } 

En el archivo ActivityThread.java, hay muchos errores que parecen surgir de errores en las importaciones. Las importaciones con errores para ese archivo son:

 import android.content.IIntentReceiver;//IIntentReceiver is in red import android.content.pm.IPackageManager;//IPackageManager is in red import android.net.IConnectivityManager;//IConnectivityManager is in red import com.android.internal.app.IVoiceInteractor;//IVoiceInteractor import com.android.org.conscrypt.OpenSSLSocketImpl;//conscrypt is in red import com.android.org.conscrypt.TrustedCertificateStore;//conscrypt is in red import com.google.android.collect.Lists;//google is in red import libcore.io.DropBox;//libcore is in red import libcore.io.EventLogger;//libcore is in red import libcore.io.IoUtils;//libcore is in red import libcore.net.event.NetworkEventDispatcher;//libcore is in red import dalvik.system.CloseGuard;//CloseGuard is in red import dalvik.system.VMDebug;//VMDebug is in red import dalvik.system.VMRuntime;//VMRuntime is in red 

Y aquí está el archivo de manifiesto según lo solicitado:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.user.assignment1" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" 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> 

Y el archivo build.gradle:

 apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.example.user.assignment1" minSdkVersion 8 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' } 

Y la construcción gradle para el proyecto:

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcente dependencies { classpath 'com.android.tools.build:gradle:1.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } r() } 

  • Llamar a System.loadLibrary dos veces para la misma biblioteca compartida
  • Android findFragmentByTag devuelve null al depurar
  • ¿Cómo puedo detectar un clic en un oyente onTouch?
  • Error: Error de ejecución para la tarea ': lib: compileReleaseAidl'. > Ejecutor Singleton no iniciado
  • No se puede leer socket InputStream en Jelly Bean
  • Com.google.firebase.database.DatabaseException: No se admite la serialización de matrices, utilice Listas en su lugar
  • Registrar un botón de auriculares haga clic con BroadcastReceiver en Android
  • Iniciar mi aplicación Phonegap a una hora específica (despertador)
  • 10 Solutions collect form web for “Clase no encontrada error, pero la clase definitivamente existe”

    Al principio "Clean" y "Proyecto de sincronización con archivos Gradle". A continuación, ejecute su código.

    Basta con borrar la carpeta de construcción de su proyecto, luego limpiar y ejecutar su aplicación .. esto hizo el truco para mí.

    El paquete en el que ha definido MainActivity es diferente del paquete de su manifiesto. Está definiendo com.example.user.myfirstapp como su paquete en el manifiesto y define su MainActivity con una ruta de acceso relativa en el manifiesto. Así que el manifiesto piensa que su MainActivity se encuentra en com.example.user.myfirstapp.MainActivty. Pero su MainActivity está en el paquete com.example.user.assignment1. O bien usa una ruta absoluta en su manifiesto para MainActivity o cambia el paquete.

    En Android Studio,

    Algunas veces debido a la versión gradle, este tipo de errores se generan.

    Me enfrenté a la misma y cambiar de

    Classpath 'com.android.tools.build:gradle:2.0.0-beta2'

    a

    Classpath 'com.android.tools.build:gradle:1.5.0'

    En el archivo build.gradle del proyecto. Y funcionó para mí. En realidad gradle versión: 2.0.0-beta2 no era estable y puede haber algún error.

    Nota: Utilice siempre sólo versiones estables

    Tuve el siguiente problema:

     java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

    Por lo general, es AndroidManifest.xml problema que no tiene el nombre del paquete adecuado o la actividad con la intención principal no fue definido correctamente. Eso es una solución fácil.

    Tenía este problema recientemente y encontré la causa raíz estaba en referenciar el proyecto. Este proyecto de referencia ( BaseGameUtils ) de alguna manera tenía una versión diferente de google-play-service . El mensaje proviene de la console quejándose jar mismatch manera antes de logcat muestra error por encima. De alguna manera este mensaje de la consola no para el final de la compilación para arriba tenía error del tiempo de ejecución. Esto me costó como 10 M / Hs.

    Esto puede deberse a que no hay ningún archivo .class. Compruebe que ha definido un directorio de salida de archivos compilados y trate de compilar la clase de problemas de nuevo.

    Cerrar android studio, borrar ".gradle", ".idea", "gradle" estas 3 carpetas. Y luego abrir el estudio de Android. Ahora Studio creará nuevos archivos de configuración para que la aplicación se ejecute correctamente.

    1. Desinstalar la aplicación
    2. Reiniciar el teléfono
    3. Vuelva a instalar la aplicación

    Me enfrento a este tipo de error, y la solución para mí fue añadir en el gradle archivo dependencias (app) "compilar 'com.android.support:design:25.3.1'" Esto sucedió porque empecé un proyecto sin esta dependencias Y luego he añadido la "tarjeta" de apoyo, que necesitan estas dependencias.

    Esto puede suceder después de cambiar el nombre de paquetes y clases. En uno de sus diseños xml puede estar haciendo referencia a una clase personalizada dentro de una etiqueta . Desafortunadamente, este camino no es renombrado por Android Studio. Compruebe si la ruta es correcta.

    Esto también podría ser un colapso de Gradle. Intente eliminar .gradle y .gradle carpetas de su carpeta de proyecto y .gradle carpeta de su carpeta de módulo, reconstruya y reinicie la aplicación. La carpeta eliminada se regenerará con la configuración correcta.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.