Unity - Activer Multidex ou trop de méthodes

Comment tout a commencé


Bonjour à tous. À une certaine étape du développement d'un jeu pour Android sur le moteur Unity, j'ai rencontré un problème avec la construction. Après avoir ajouté des plugins tels que Appodeal et Google Play Games au projet, le nombre de méthodes utilisées a dépassé 65 Ko et l'erreur suivante s'est produite lors de la génération:

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

Après avoir lu la documentation Appodeal, j'ai réalisé que j'avais besoin d'activer Multidex. J'ai décidé de le faire. Le site avait un lien avec des instructions pour Android Studio. Et puis, chez Unity, que devons-nous faire?

Et tout est assez simple, il suffit de faire trois actions:

Activer le système de construction Gradle


Pour activer Gradle in Unity dans votre projet Android

  1. Dans Unity, ouvrez les paramètres de build ( Fichier >> Paramètres de build )
  2. Si vous n'avez pas choisi de plateforme, il est temps de le faire ( Platform >> Android )
  3. Dans la liste Build System, sélectionnez Gradle ( Build System >> Gradle )

image

Modifier les paramètres de Gradle


1. Pour modifier les paramètres Gradle, vous devez d'abord obtenir le fichier de paramètres Gradle, qui se trouve dans le dossier ( Assets / Plugins / Android / mainTemplate.gradle ). Si le fichier mainTemplate.gradle est téléchargé à partir du lien et collé à l'adresse Assets / Plugins / Android / :

Téléchargez le fichier

2. Si vous avez déjà le fichier, ajoutez la ligne multiDexEnabled true à l'objet defaultConfig

3. Si le niveau d'API Android minimum est 20 ou inférieur , ajoutez cette ligne compile 'com.android.support:multidex:1.0.1'

4. Mettez en commentaire ou supprimez les lignes:

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

Vue du fichier final:

image

Initialisation de Multidex


Si le niveau minimum de l'API Android est défini sur 20 ou moins.

Mettez à jour le fichier manifeste situé dans Assets / Plugins / Android / AndroidManifest.XML . Si vous n'avez pas ce fichier, vous devrez le créer. Vous pouvez trouver AndroidManifest par default.xml dans l'emplacement d'installation de Unity. Mais vous devrez également appliquer manuellement les paramètres de projet de votre application: nom du package, autorisations, paramètres de configuration et autres informations.

Si vous venez de créer un nouveau fichier manifeste ou si vous en aviez déjà un, vous ajoutez simplement ce paramètre ( android: nom ) comme suit:

image

C'est tout. L'erreur disparaît et vous construisez calmement votre projet.

Merci pour l'attention.

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


All Articles