reconoce - Android no puede instalar mi aplicación, portada desde Eclipse a Android Studio, en mi teléfono de prueba, un Pixel XL
depurar android studio en telefono (4)
He estado manteniendo una aplicación para la compañía de un amigo durante varios años. Cuando se actualizaron recientemente de Android 5 a Android 7, la aplicación dejó de funcionar. Así que migré a Android Studio y comencé a arreglar cosas. Ahora, después de aplastar un montón de errores, no puedo hacer que la aplicación se instale en mi teléfono de prueba, que es un Pixel XL con Android 8. Estaba ejecutando imágenes de depuración hasta que lo desinstalé para poder probar la instalación. (Creo que fue por Instant Run).
Ahora obtengo lo siguiente:
$ adb install-multiple -r -t I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_0.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_1.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_7.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_4.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_5.apk I:/Users/.../app/build/intermediates/split-apk/debug/dep/dependencies.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_6.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_3.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_8.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_2.apk I:/Users/.../app/build/intermediates/split-apk/debug/slices/slice_9.apk I:/Users/.../app/build/outputs/apk/debug/app-debug.apk
Split APKs installed
$ adb shell am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Error while executing: am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.pbs.deliverytrack1/.MainActivity }
Error type 3
Error: Activity class {com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity} does not exist.
Error while Launching activity
¿Se ve correcto com.pbs.deliverytrack1 / com.pbs.deliverytrack1.MainActivity?
NOTAS ADICIONALES: Pude obtener la aplicación para que se instale por correo electrónico en un Samsung Edge 7.0 con Nougat 7.0. Todavía no puedo conseguir que se instale en mi Google Pixel XL que está ejecutando Oreo 8.0.
He intentado con cada combinación de versiones de compilación en las que puedo pensar. La clave, creo que está en el mensaje de error:
$ adb shell am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Error while executing: am start -n "com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.pbs.deliverytrack1/.MainActivity }
Error type 3
Error: Activity class {com.pbs.deliverytrack1/com.pbs.deliverytrack1.MainActivity} does not exist.
En la sección que dice: cmp = com.pbs.deliverytrack1 / .MainActivity, ¿debería ser com.pbs.deliverytrack1 / com.pbs.deliverytrack1.MainActivity?
ACTUALIZACIÓN Después de jugar con minSDK, maxSDK y targetSDK, así como con tres versiones diferentes de Android: 7.0, 7.1.1 y 8.0, he encontrado una manera de seguir trabajando. Mi cliente está utilizando 7.0 y 7.1.1, así que construí un emulador con 7.0 que he estado usando para depurar mi aplicación. (La sugerencia de mi esposa, de hecho.) Así que estoy avanzando de nuevo.
También voy a hacer lo que suelo hacer cuando me enfrento a problemas extraños. Voy a continuar con -XLint y corregiré todas las advertencias que pueda encontrar. (Cuando no puedes arreglar el error que quieres, nena, arregla el error que tienes). Además de resolver algunos problemas pendientes, espero que eventualmente lleven al aplastamiento de este error.
Gracias a todos por la ayuda y sugerencias. Voy a dejar esto abierto por un momento, para ver si alguien viene con un milagro. Preferiría otorgar la recompensa que simplemente dejarlo entrar en el cubo de bits. :)
Entonces, una vez más, pido humildemente ayuda. Gracias, Ray
Como CommonsWare mencionado en el comentario, parece que tu aplicación se está instalando, simplemente no se puede iniciar. Puedo pensar en dos cosas para verificar:
- Asegúrese de que su archivo
AndroidManifest.xml
enumere el nombre de clase completo calificado deMainActivity
. Si es incorrecto, su aplicación se instalará, pero se bloqueará al iniciarse y se quejará de no poder encontrar suMainActivity
. - Si usa ProGuard, verifique que las reglas estén configuradas para que ProGuard no
MainActivity
claseMainActivity
de su APK. Muchos desarrolladores solo ProGuard sus compilaciones sin errores y usted mencionó que sus compilaciones de depuración funcionan bien, por lo que podría ser una pista. - EDITAR: Puedo pensar en uno más. Si está cambiando el
buildType
laapplicationId
en sudebug
buildType
, entonces deberá especificar el mismo ID en su comandoadb am start
.
Si nada funciona, intente simplemente crear un nuevo proyecto en Android Studio, con toda la información adecuada (como el mismo nombre de paquete, compatibilidad con dispositivos Android), cuando cree la primera actividad, copie todo el contenido en sus archivos de diseño Java y XML. del viejo proyecto Cree otra actividad (por ejemplo, si tiene una DrawerActivity
en su proyecto Eclipse, cree otra DrawerActivity en Android Studio. Es de esperar que esto funcione).
No estoy seguro de si esto funcionará, pero es la opción más fácil. Primero, copie todo desde la carpeta de Resources
de su proyecto anterior, copie todos los archivos Java al nuevo proyecto y, como las Activities
deben definirse, copie su AndroidManifest.xml
en su nueva aplicación.
¡Espero que esto ayude!
Puedo sugerir puntos a continuación: 1) Como ya se sugirió en algunos de los comentarios anteriores, espero que ya haya desactivado "Ejecución instantánea" (abra el cuadro de diálogo Configuración o Preferencias. Navegue hasta Compilación, Ejecución, Despliegue> Ejecución instantánea y anulación de la comprobación la casilla junto a Activar ejecución instantánea) 2) En AS, vaya a Archivo-> invalidar memoria caché y reinicie 3) Pruebe Probar Gradle y luego compilar (nivel de aplicación, desde el lado derecho de las opciones de menú de Gradle)
¿Pueden decirnos qué versión de Android Studio está usando actualmente?
Ahora hay muchos cambios en Android y también en Android-8
, Android-7.1
y Android-7
De modo que hay muchas cosas nuevas en él si está utilizando el servicio en segundo plano que debe agregar una Job scheduling
adicional para Android 7,7,1,8
Cambio de comportamiento del turrón
Cambio de comportamiento de Oreo
Actualizar Android SDK Build-Tools 27.0.1
Puede cambiar la aplicación Módulo Gradle archivo
apply plugin: ''com.android.application''
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.example.package"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
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:26.+''
compile ''com.android.support.constraint:constraint-layout:1.0.2''
testCompile ''junit:junit:4.12''
}
Para apoyar emulador
Actualice el Sdk Android-7,7.1,8. para crear el emulador local Menú Archivo -> Configuración -> Apariencia y comportamiento -> Configuración del sistema -> Android Sdk