Mon projet utilise ces plugins:
Ces plugins sont utilisés dans presque tous les projets.
Mais j'ai dépassé le nombre de références sur le terrain
Ceci est ma liste de fichiers .aar
Que dois-je faire pour diminuer le nombre de références?
Alors, que dois-je faire pour diminuer le nombre de références?
Vous avez tellement de plugins avec de nombreuses fonctions/champs. Il y a une limite lors de la construction à partir de l'éditeur Unity et vous avez atteint cette limite.
Pour diminuer le nombre de références, vous devez supprimer certains de ces plugins mais je suis sûr que vous en avez besoin et la suppression peut ne pas être la solution appropriée dans ce cas.
La seule manière de contourner cela et de construire pour Android en ce moment est de -- exporter le projet sous la forme Android Project puis le construire avec Android Studio. Cela supprime la limite de référence imposée par l'éditeur de Unity .
[~ # ~] modifier [~ # ~]
J'ai oublié de mentionner que vous devez activer le multidex après l'avoir exporté. Étant donné que de nombreuses personnes traversent ce problème quotidiennement, j'ai décidé d'ajouter une instruction approfondie sur la façon de résoudre ce problème en en l'exportant et également comment le résoudre. sans l'exporter .
1A . Exportez le projet Unity en tant que Android Project.
1B . Importez dans Android Studio:
Si vous obtenez une erreur de note lors de l'importation dans Android Studio comme celui ci-dessous:
Erreur: org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection ne peut pas être converti en org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection
Dans le bloc "dépendances" qui se trouve dans le bloc "buildscript" du fichier build.gradle, changez:
classpath 'com.Android.tools.build.gradle.2.1.0'
à
classpath 'com.Android.tools.build:gradle:2.2.3'
Si vous exportez le projet et obtenez toujours la même erreur, vous devez activer manuellement le multidex. Voici une étape simplifiée à suivre de Google doc qui vous sera montrée dans l'erreur:
2 . Ajoutez Android:name="Android.support.multidex.MultiDexApplication" >
à la balise application dans le fichier AndroidManifest.xml.
3 . Ajoutez compile 'com.Android.support:multidex:1.0.1'
au bloc "dépendances" dans le fichier build.gradle.
4 . Ajoutez multiDexEnabled true
au bloc "defaultConfig" qui se trouve dans le bloc "Android" du fichier build.gradle.
Construisez l'APK et voyez si cela fonctionne. Si l'erreur de comptage de référence a disparu, arrêtez-vous ici.
5 . Obtenir une exception de surcharge GC comme celle ci-dessous?
Java.lang.OutOfMemoryError: dépassement de la limite de surcharge du GC
Augmentez la taille de segment de mémoire qui sera utilisée lors de l'exécution d'une opération dex. A partir de cette solution , ajoutez ce qui suit au bloc "Android" dans le fichier build.gradle:
dexOptions {
javaMaxHeapSize "4g"
}
Doit avoir Unity 5.5 et supérieur pour ce faire:
1 . Allez à <UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates
, Copiez le mainTemplate.gradle
fichier dans votre <ProjectName>Assets\Plugins\Android
dossier.
2 . Allez à <UnityInstallationDirecory>\Editor\Data\PlaybackEngines\AndroidPlayer\Apk
, Copiez le AndroidManifest.xml
fichier dans votre <ProjectName>Assets\Plugins\Android
3 . Ouvrez les deux mainTemplate.gradle
et AndroidManifest.xml
fichier que vous venez de copier avec Visual Studio, puis effectuez la modification à partir de l'instruction CORRIGER EN EXPORTANT LE PROJET ci-dessus. Étape Ignorer/Ignorer # 1A et # 1B . Suivez simplement les étapes de # 2 à # 5 . C'est ça.
Ce est ce que le final mainTemplate.gradle
devrait ressembler et this est ce à quoi la finale AndroidManifest.xml
devrait ressembler. Ceci est uniquement à des fins de référence. Je suggère de ne pas utiliser le mien mais de suivre les étapes de copie ci-dessus pour créer le vôtre, car les futures versions d'Unity peuvent contenir des fichiers différents. Vous voulez vous assurer que vous utilisez la dernière version ou vous pourriez avoir des problèmes pour la construire.
4 . Construisez l'APK et voyez si cela fonctionne:
-
Si l'erreur de comptage de référence a disparu, arrêtez-vous ici:
5 . Vous obtenez une erreur comme celle ci-dessous?
Les builds Release Failure Release doivent être signés lors de l'utilisation de Gradle
Juste signe l'apk du Paramètres de publication dans le Paramètres de construction. Vous pouvez créer un nouveau fichier de clés ou utiliser un fichier existant.
6 . Une autre erreur comme ci-dessous?
Erreur: évitez de coder en dur le mode de débogage; le laisser de côté permet aux versions de débogage et de publication d'attribuer automatiquement une [HardcodedDebugMode]
Retirer Android:debuggable="true">
du AndroidManifest.xml
fichier.
Si cette solution non exportatrice ne fonctionnait pas pour vous, vous devez utiliser la solution d'exportation.
OMI, la réponse acceptée n'est pas correcte (ou seulement partiellement correcte). L'exportation d'un Android studio ne résoudra pas "par magie" ce problème. De plus, d'après mon expérience, le projet de studio Android Android) ne se construit pas toujours tout de suite et vous devez réparer beaucoup de choses avant de pouvoir le construire.
Vous utilisez beaucoup de plugins et vous avez donc dû faire face à limitation Android de ne pas pouvoir référencer plus de 64k méthodes.
Il y a quelques choses que vous pouvez essayer de résoudre: