android - queda - servicios de google play continua fallando
Error de Google Play: no se puede cargar un APK solo de prueba (5)
Encontré este blog que aborda la causa del error "solo de prueba"
https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
Básicamente, hay dos cosas a tener en cuenta al respecto:
No puede instalar una aplicación con android: testOnly = "true" por medios convencionales, como desde un administrador de archivos de Android o desde una descarga desde un sitio web
Android Studio 3.0 establece android: testOnly = "true" en APKs que se ejecutan desde el IDE
android studio 3.0 ahora establece este indicador "testOnly" cuando compilas una versión de lanzamiento usando el botón verde Ejecutar (hacer proyecto CTRL + F9).
La solución que encontré es no llamar "make project", sino llamar a cualquiera
- construir> construir APK o
- construir> generar APK firmado ...
Cuando intento cargar la primera apk en un proyecto creado recientemente en la consola de GooglePlay, recibo este error:
No puedes subir un APK solo de prueba
La búsqueda en Google me da 0 resultados para esa cadena exacta de hoy.
También he enviado un ticket para Play Console. Se actualizará aquí si tiene alguna respuesta.
ACTUALIZACIÓN Nov 29th 2017
Como sugirió @ paul-lammertsma, hay una solución. Aun así, sería bueno saber por qué tenemos que ir por el camino y no podemos hacerlo a través del IDE.
Estoy usando Android Studio 3.1 Canary 5
Lo que había intentado (pero no funcionó):
- Intenté todas las respuestas como antes, pero desafortunadamente no tuve una solución.
- Quité la dependencia de kotlin y firmé pero no funcionó.
- Intenté usar la línea de comandos como
./gradlew assembleRelease
- Intenté crear apk utilizando "Crear APK" y "Generar APK firmado"
Después de todas las posibilidades , obtuve la solución de la siguiente manera: - Compilar la versión del SDK cambiada de Android P a Android Oreo 27 - La versión cambiada de AppCompat a 27.0.1
y está funcionando con éxito ahora.
Gracias.
Haga clic en Construir y luego presione BuildAPK (s) y luego subirlo funcionará. La ejecución instantánea de APK en Android Studio 3.0 se ejecuta solo en el dispositivo conectado a adb.
Parece que encontré algo muy relacionado: la instalación de ADB falla con INSTALL_FAILED_TEST_ONLY
Estoy usando 2.4.0-alpha6 del plugin gradle y eso parece estar lejos de estar listo para ser utilizado para la producción.
Así que la solución es usar el último complemento estable de gradle:
classpath ''com.android.tools.build:gradle:2.3.1''
La creación de su aplicación a través de Android Studio 3.0 y posterior agregará android:testOnly="true"
a su manifiesto de aplicación, marcando la APK como FLAG_TEST_ONLY
para el PackageManager. Más información en CommonsBlog aquí.
Intentar instalar un APK de este tipo fuera de Android Studio fallará con:
Error al instalar app-debug.apk: Error [INSTALL_FAILED_TEST_ONLY: installPackageLI]
Intentar cargarlo en Google Play también fallará, con:
No puedes subir un APK solo de prueba
Hay cuatro soluciones para esto:
Construir desde Android Studio
Simplemente seleccione "Crear APK (s)" en el menú "Crear" en Android Studio.
Iniciar sesión desde Android Studio manualmente
Simplemente seleccione "Generar APK firmado ..." en el menú "Crear" en Android Studio. Proporcione el almacén de claves e ingrese los detalles de firma en el cuadro de diálogo que se muestra.
Construir a través de Gradle
Por supuesto, simplemente puede ejecutar Gradle desde el terminal. Además, si su ciclo de implementación se ejecuta a través de CI (¡y debería!), ¡Este es realmente el camino a seguir!
./gradlew assembleRelease
(Alternativamente, puede preferir ejecutar esta tarea de Gradle desde el panel de Gradle desde Android Studio).
Deshabilita esta característica en Android Studio
Si no le gusta este comportamiento, puede elegir agregar esta bandera a su gradle.properties
. Tenga en cuenta que la marca de prueba es para su propia protección, por lo que no publica accidentalmente un archivo de prueba solo de prueba.
# Disble the bullshit testOnly mode for Android Studio
android.injected.testOnly=false