Unidad: habilite Multidex o demasiados métodos

Cómo empezó todo


Hola a todos. En una determinada etapa del desarrollo de un juego para Android en el motor de Unity, encontré un problema con la compilación. Después de agregar complementos como Appodeal y Google Play Games al proyecto, el número de métodos utilizados excedió los 65K y apareció el siguiente error durante la compilación:

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

Después de leer la documentación de Appodeal, me di cuenta de que necesitaba habilitar Multidex. Decidí hacerlo. El sitio tenía un enlace con instrucciones para Android Studio. Y luego en Unity, ¿qué debemos hacer?

Y todo es bastante simple, solo tienes que hacer tres acciones:

Habilitar Gradle Build System


Para habilitar Gradle in Unity en su proyecto de Android

  1. En Unity, abra Configuración de compilación ( Archivo >> Configuración de compilación )
  2. Si no ha elegido una plataforma, entonces es hora de hacerlo ( Plataforma >> Android )
  3. En la lista Sistema de compilación, seleccione Gradle ( Sistema de compilación >> Gradle )

imagen

Cambiar la configuración de Gradle


1. Para cambiar la configuración de Gradle, primero debe obtener el archivo de configuración de Gradle, que se encuentra en la carpeta ( Assets / Plugins / Android / mainTemplate.gradle ). Si el archivo mainTemplate.gradle se descarga desde el enlace y se pega a la dirección Assets / Plugins / Android / :

descargue el archivo

2. Si ya tiene el archivo, agregue la línea multiDexEnabled true al objeto predeterminado de la configuración

3. Si el nivel mínimo de API de Android es 20 o inferior , agregue esta línea compila 'com.android.support:multidex:1.0.1'

4. Comenta o elimina las líneas:

minifyEnabled **MINIFY_DEBUG**
useProguard **PROGUARD_DEBUG**

Vista final del archivo:

imagen

Inicializando Multidex


Si el nivel mínimo de la API de Android se establece en 20 o menos.

Actualice el archivo de manifiesto ubicado en Assets / Plugins / Android / AndroidManifest.XML . Si no tiene este archivo, deberá crearlo. Puede encontrar AndroidManifest por default.xml en la ubicación de instalación de Unity. Pero también tendrá que aplicar manualmente la configuración del proyecto de su aplicación: nombre del paquete, permisos, parámetros de configuración y otra información.

Si acaba de crear un nuevo archivo de manifiesto o ya tenía uno, simplemente agregue este parámetro ( android: nombre ) de la siguiente manera:

imagen

Eso es todo. El error desaparece y construyes tranquilamente tu proyecto.

Gracias por la atención.

Source: https://habr.com/ru/post/undefined/


All Articles