No encontró la clase en la ruta: DexPathList?
Mi aplicación está funcionando bien cuando me prueba en el dispositivo real con USB en el estudio de Android. Pero cuando envío el apk a otro dispositivo e instalar allí, no es working.App obtener se estrelló.No encontré ninguna manera correcta de resolver el problema . Los errores se dan a continuación:
FATAL EXCEPTION: main Process: com.w3xplorers.cmch,PID: 17715 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.w3xplorers.cmch/com.w3xplorers.cmch.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.w3xplorers.cmch.MainActivity" on path: DexPathList[[zip file "/data/app/com.w3xplorers.cmch-1/base.apk"],nativeLibraryDirectories=[/data/app/com.w3xplorers.cmch-1/lib/arm, /system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2395) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544) at android.app.ActivityThread.access$900(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:168) at android.app.ActivityThread.main(ActivityThread.java:5845) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:797) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.w3xplorers.cmch.MainActivity" on path: DexPathList[[zip file "/data/app/com.w3xplorers.cmch-1/base.apk"],nativeLibraryDirectories=[/data/app/com.w3xplorers.cmch-1/lib/arm, /system/lib, /vendor/lib, system/vendor/lib, system/vendor/lib/egl, system/lib/hw]] 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:1085) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2385) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544) at android.app.ActivityThread.access$900(ActivityThread.java:150) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:168) at android.app.ActivityThread.main(ActivityThread.java:5845) at java.lang.reflect.Method.invoke(Native Method) atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) Suppressed: java.lang.ClassNotFoundException: com.w3xplorers.cmch.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) ... 12 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
Mi Manifiesto está abajo:
- Cómo averiguar por qué un dispositivo Android no es compatible con un APK
- No se puede usar android: xlargeScreens = "true"?
- Java.lang.RuntimeException: No se puede instanciar la actividad
- declarando el tipo de mime para un "archivo personalizado" que se va a enviar a través de bluetooth
- Configuración persistente del nombre predeterminado en un proyecto de Android en Eclipse
`<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.w3xplorers.cmch"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:name="com.w3xplorers.cmch.EnableMultiDex" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name="com.w3xplorers.cmch.MainActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.w3xplorers.cmch.HomeActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.QuickSms" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.GroupSms" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.SelfSms" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.Contact" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.Favourite" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.Info" android:screenOrientation="portrait" android:theme="@style/AppTheme.NoActionBar" /> <activity android:name="com.w3xplorers.cmch.Dialog" /> </application> </manifest>`
Gradle a continuación:
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.w3xplorers.cmch" minSdkVersion 13 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.0' compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha5' compile 'com.android.support:design:25.3.0' compile 'com.andreabaccega:android-form-edittext:1.0.3' compile 'com.android.volley:volley:1.0.0' compile 'com.squareup.okhttp3:okhttp:3.3.1' compile 'com.android.support:multidex:1.0.1' testCompile 'junit:junit:4.12' }
- ¿Cuáles son los efectos secundarios de la inhabilitación de la inspección LINT?
- ¿Es posible definir un receptor de difusión como una clase interna en el archivo de manifiesto?
- ¿Por qué mi aplicación está solicitando permiso para "impedir que el teléfono se duerma"?
- Manifiesto del proceso Gradle con la nueva fusión de manifiesto
- ¿Cuál es el tamaño de pantalla correcto y la configuración de densidad de Nexus 6?
- Android: Cambiar la etiqueta de la aplicación mediante programación
- Android: error extraño en Manifest
- Mantener el estado de la aplicación android utilizando alwaysRetainTaskState y lauchMode
Vaya a su archivo build.gradle de nivel de proyecto y disminuya la versión de dependencia de gradle a algo inferior a 2.3.0 , digamos use 2.2.3
dependencies { classpath 'com.android.tools.build:gradle:2.2.3' .... }
A continuación, limpiar -> construir -> instalar debug apk a otro dispositivo -> puede ser bien entonces!
Como has dicho, construyes la aplicación y la empujas a tu teléfono a través de USB, creo que copiaste el apk de tu directorio de compilación y tratando de empujar y ejecutar en otro dispositivo. Por favor, intenta construir tu apk sin la orientación o la conexión de ningún dispositivo o emulador lo que quiero decir que construir su apk de la terminal sin conectar su dispositivo. O funcionará o mostrará algo.
En su etiqueta de aplicación, cambiar
android:name="com.w3xplorers.cmch.EnableMultiDex"
con
android:name="android.support.multidex.MultiDexApplication"
Espero que esto ayude 🙂
Mas información en:
Creo que el problema es AndroidStudio está atando para usar "Instant Run" en lugar de compilar e instalar un nuevo APK.
Deshabilite "Ejecutar instantáneamente" desde Archivo -> Configuración -> Creación, Ejecución, Implementación -> Ejecución instantánea.
En su build.gradle agregar
defaultConfig { multiDexEnabled true }
También agregue una dependencia como
dependencies { compile 'com.android.support:multidex:1.0.0'}
defaultConfig { minSdkVersion 14 targetSdkVersion 21 multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.1' }
También me enfrenté a un problema similar. En mi caso he resuelto el problema agregando esto debajo de buildTypes
dexOptions { javaMaxHeapSize "4g" }
También usado
defaultConfig { multiDexEnabled true }
y
dependencies { compile 'com.android.support:multidex:1.0.0' }
No encontré ninguna solución perfecta para mi problema. Pero cuando subo mi apk en google jugar y descargar desde allí, la aplicación está funcionando bien.Esta es la solución más extraña que he encontrado.
- ¿Hay una manera de limitar el importe del método en el archivo principal dex mientras se utiliza la función MultiDex en Android Studio
- Android Web-View shouldOverrideUrlLoading () Deprecated. (Alternativa)