studio play permisos nombre llamadas identificador google generar firmar firma debug con apps android gradle apk

android - play - identificador de llamadas con nombre



No se puede crear apk: el número de referencias de método no puede exceder de 64 K (3)

No se puede crear apk: el número de referencias de métodos no puede exceder de 64 K cuando el archivo .dex de la aplicación tiene más de 65,536 métodos.

Supere el método 65K que significa que el método cuenta con más de 65,536 métodos. Hay diferentes maneras de solucionarlo:

1. Reduzca las dependencias en su proyecto ponga las dependencias en gradle que son requeridas

La mayoría de los problemas que encontré de otros desarrolladores es usar Google Play Services en proyectos de este tipo.

compile ''com.google.android.gms:play‐services:8.4.0''

Por lo tanto, la mejor manera es elegir solo algunas dependencias en los servicios de Google Play que realmente desea usar.

compile ''com.google.android.gms:play‐services‐location:8.4.0'' compile ''com.google.android.gms:play‐services‐maps:8.4.0'' compile ''com.google.android.gms:play‐services‐ads:8.4.0''

2. Establezca la versión mínima de SDK en 21 o superior

¿Por qué funcionó cuando se cambia el SDK mínimo a 21? Esto se debe a que Android 5.0 o superior es el uso de ART (Android Runtime) que admite MultiDex en lugar de Dalvik. Así que ART puede soportar más de 65,536 métodos.

3. Utilice Proguard para reducir el método inútil

4. Utilice MultiDex

Pero estas son las limitaciones de la librería MultiDex.

• Puede ocurrir ANR mientras se ejecuta la aplicación si los archivos .dex son demasiado grandes.

• Debe definirse el SDK mínimo a la versión 14 o superior.

• MulitDex usa más memoria y puede fallar mientras se ejecuta la aplicación si la memoria de asignación está por encima del límite.

• Toma más tiempo de construcción cuando construyes el proyecto

He estado tratando de compilar el archivo apk para mi aplicación, sin embargo, recibo el error: el número de referencias de métodos no puede superar los 64K.

Aquí están los errores,

Error: el número de referencias de método en un archivo .dex no puede exceder de 64K. Aprenda a resolver este problema en https://developer.android.com/tools/building/multidex.html

Error: la ejecución falló para la tarea '': aplicación: transformClassesWithDexForDebug''.

com.android.build.api.transform.TransformException: com.android.ide.mon.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.mon.process.ProcessException: org.gradle.process. internal.ExecException: El ''comando'' del proceso ''C: / Archivos de programa / Java / jdk1.7.0_15 / bin / java.exe'' ''terminó con un valor de salida 2 distinto de cero

Este es mi archivo de gradle,

apply plugin: ''com.android.application'' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "nikhilraghavendra.hopper" minSdkVersion 21 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { shrinkResources true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } packagingOptions { exclude ''META-INF/LICENSE'' exclude ''META-INF/LICENSE-FIREBASE.txt'' exclude ''META-INF/NOTICE'' } } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) testCompile ''junit:junit:4.12'' compile ''com.android.support:appcompat-v7:23.2.1'' compile ''com.android.support:design:23.2.1'' compile ''com.google.android.gms:play-services-identity:8.4.0'' compile ''com.firebase:firebase-client-android:2.3.1'' compile ''com.android.support:cardview-v7:23.2.1'' compile ''com.google.android.gms:play-services:8.4.0'' }

Quiero compilar el archivo apk e implementarlo sin problemas, ¿cómo lo hago?

Actualizar

También probé lo siguiente

apply plugin: ''com.android.application'' android { compileSdkVersion 23 buildToolsVersion "23.0.3" dexOptions { maxProcessCount = 4 // this is the default value } dataBinding{ enabled = true } defaultConfig { applicationId "nikhilraghavendra.hopper" minSdkVersion 21 targetSdkVersion 23 resConfigs "en", "fr" versionCode 1 versionName "1.0" } buildTypes { release { shrinkResources true minifyEnabled true useProguard true proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } debug { minifyEnabled true useProguard false } } packagingOptions { exclude ''META-INF/LICENSE'' exclude ''META-INF/LICENSE-FIREBASE.txt'' exclude ''META-INF/NOTICE'' } } dependencies { compile fileTree(dir: ''libs'', include: [''*.jar'']) testCompile ''junit:junit:4.12'' compile ''com.android.support:appcompat-v7:23.2.1'' compile ''com.android.support:design:23.2.1'' compile ''com.google.android.gms:play-services-identity:8.4.0'' compile ''com.firebase:firebase-client-android:2.3.1'' compile ''com.android.support:cardview-v7:23.2.1'' compile ''com.google.android.gms:play-services:8.4.0'' }

Esto está produciendo el mensaje:

Error: la ejecución falló para la tarea '': app: transformClassesWithNewClassShrinkerForDebug''.

Las advertencias encontradas durante la reducción, utilice -dontwarn o -ignorewarnings para suprimirlas.

¿Cómo me ocupo de esto y construyo un apk adecuado? Por favor ayuda.


Ponga esto dentro de su defaultConfig :

multiDexEnabled true


android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "com.try.app" minSdkVersion 21 targetSdkVersion 26 versionCode 1 versionName "1.0" multiDexEnabled true }

Aquí multiDexEnabled true debería hacer el juego por ti.

ACTUALIZACIÓN: Para soportar la última versión de Android
1. Si su minSdkVersion está configurado a 21 o superior, todo lo que necesita hacer es establecer multiDexEnabled en verdadero en su archivo build.gradle a nivel de módulo, como se muestra arriba.
2. Sin embargo, si su minSdkVersion está configurado a 20 o menos, entonces debe usar la biblioteca de soporte multidex junto con los cambios anteriores de la siguiente manera:

dependencies { compile ''com.android.support:multidex:1.0.1'' }

Además de la adición anterior de la biblioteca de soporte, debe realizar cambios en su clase de aplicación como se menciona en este Link .

MEJORES PRÁCTICAS:
1. Elimine cualquier código no utilizado con proguard.
2. Evita agregar dependencias innecesarias en tu proyecto.
3. Si se necesitan métodos o clases de número limitado de cualquier biblioteca de código abierto, es recomendable clonar solo aquellos en su proyecto, ya que no solo le da control total sobre ellos, sino que también permite que proguard actúe sobre ellos y no tiene Cualquier método no utilizado en su código.

Fuente: Link