7
votes

Comment résoudre "Impossible de trouver la méthode bundle () pour les arguments [build_6plat21h .....] sur l'objet de type com.android.build.gradle.LibraryExtension"?

D'accord, je soumets, j'essaie de faire fonctionner un projet Unity 3D dans une vue sur Android et cela semble assez facile grâce à quelques tutoriels en ligne. Cependant, je suis coincé dans la partie où je dois convertir le projet unity en un fichier module / AAR. En suivant les étapes de ces didacticiels en ligne, j'arrive à l'étape où je dois synchroniser le projet gradle et je reçois:

ERREUR: Impossible de trouver la méthode bundle () pour les arguments [build_6plat2lh5rmq66u2k9bfvj0j1 $ _run_closure3 $ _closure12 @ 655df9f ] sur un objet de type com.android.build.gradle.LibraryExtension.

Les étapes que j'ai utilisées pour produire le problème:

Sur Unity:

  • J'ai mis en place une animation 3D de base
  • Accéder aux paramètres de compilation

    • définir la compression de texture: ETC2> système de construction: Gradle> vérifier: Exporter le projet
    • Définir le nom du package
  • Cliquez sur Exporter

  • Sélectionnez un dossier pour la bibliothèque
  • Android Studio

    • Fichier -> Nouveau -> Module d'importation -> Sélectionnez le projet qui a été exporté depuis Unity
    • Le projet s'ouvre -> "Les paramètres Gradle ne sont pas encore configurés pour ce projet, souhaitez-vous utiliser Gradle Wrapper" -> Sélectionnez "Ok"
    • Dans build.gradle
      • Supprimez applicationID (comme indiqué dans la documentation Android)
      • Remplacez apply plugin: 'com.android.application' par apply plugin: 'com.android.library'
    • Projet de graduation de synchronisation

    Où j'ai trouvé ces étapes:

    Informations sur la version

    • Version Gradle: 4.10.1
    • Version du plugin Android: 3.3.0
    • Propriétés du wrapper Gradle distributionURL:
      https://services.gradle.org/distributions/gradle-4.10.1-all.zip

    [EDIT] J'ai oublié de mentionner que j'ai supprimé [ci-dessous] du manifeste

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
    </intent-filter>
    


    0 commentaires

    4 Réponses :


    10
    votes

    J'ai rencontré le même problème essayer toutes choses, commenter le bloc de bundle a résolu le problème pour moi

    /*bundle {
            language {
                enableSplit = false
            }
            density {
                enableSplit = false
            }
            abi {
                enableSplit = true
            }
        }*/
    

    Je ne suis pas sûr que ce soit la bonne approche mais après avoir construit le projet et généré l'apk, j'ai obtenu mon fichier .aar qui Je suppose que c'est ce que vous essayez d'obtenir.


    2 commentaires

    J'avais essayé cela avant et je n'ai pas pu accéder aux méthodes de la bibliothèque. Mais j'ai pensé que j'essaierais de nouveau car il y a trop de questions non résolues dans la vie et peut-être que j'ai fait quelque chose de mal. Ça a marché!! Merci, j'ai dû faire quelque chose de mal :)


    Je dois ajouter que les exigences du projet ont changé et que je n'utilise plus Unity, donc je ne l'ai pas testé correctement. J'espère que si quelqu'un d'autre a ce problème, cela les aidera



    1
    votes

    J'ai rencontré le même problème. Pour résoudre ce problème, vous devez modifier le plugin d'application: 'com.android.application' pour appliquer le plugin: 'com.android.library' et supprimer applicationID < / code> dans les deux build.gradle car il y en a deux.


    0 commentaires

    0
    votes

    La commande bundle ne peut être utilisée que dans le projet, la commenter est la bonne manière

    /*bundle {
        language {
            enableSplit = false
        }
        density {
            enableSplit = false
        }
        abi {
            enableSplit = true
        }
    }*/
    

    https://developer.android.com/guide/app-bundle/configure-base


    0 commentaires

    0
    votes

    Dans mon cas, le problème était que la partie bundle {} était en dehors de la partie android {}. Je l'ai placé à l'intérieur et cela fonctionne bien.

    Modifier: ce n'était pas Unity ou une bibliothèque, juste une application Android pure.


    0 commentaires