web-dev-qa-db-fra.com

Construire apk combiné armv7 / x86 après l'intégration de Crosswalk dans un projet Ionic

J'ai ajouté Crosswalk à mon projet ionic. Quand je fais ionic build Android il génère deux fichiers APK distincts, un pour armv7 et un pour x86.

Cependant, je veux un seul fichier apk regroupant deux architectures ensemble.

J'ai essayé de régler BUILD_MULTIPLE_APKS = false mais il est toujours en train de construire deux apks séparés.

Il y a un post ici disant:

Cela m'a pris une minute mais vous pouvez obtenir le fichier de construction unique en commentant la ligne cdvBuildMultipleApks = true dans les plates-formes/Android/gradle.properties

À votre santé

Mais je n'ai pas de fichier gradle.properties dans mon dossier plateformes/Android /, j'ai un fichier project.properties et il n'y a pas de cdvBuildMultipleApks=true ligne dedans pour commenter.

J'ai essayé de créer manuellement un fichier gradle.properties et de mettre cdvBuildMultipleApks=false là-dedans mais toujours deux sorties.

Des idées pour y parvenir?

Mise à jour:

Ma version Cordova est 5.1.1

Solution:

Ce qui a fonctionné pour moi, comme suggéré par @mudasserajaz et ici , était de:

  1. Créez un fichier nommé build-extras.gradle dans mon /platform/Android/ répertoire.
  2. mettre ext.cdvBuildMultipleApks=false à l'intérieur.
  3. ionic build Android --release puis et Voila, ça a marché.

@mudasserajaz a suggéré la même chose, sauf que le nom de la variable est cdvBuildMultipleApks=false donc au cas où ça ne marcherait pas pour vous, n'oubliez pas le ext

39
Sobhan

Voici les étapes pour le faire:

  1. Créer un fichier build-extras.gradle et le mettre dans platforms/Android/. Ajouter une ligne cdvBuildMultipleApks=false en build-extras.gradle.
  2. Exécutez maintenant ionic run Android, il créera une version unique combinée Android-debug.apk.

build.gradle importera automatiquement build-extras.gradle, si cela est défini. Vous pouvez voir le code de build.gradle Ce faisant :

def hasBuildExtras = file('build-extras.gradle').exists()
if (hasBuildExtras) {
    apply from: 'build-extras.gradle'
}

De plus, ces instructions sont clairement mentionnées dans build.gradle ligne 57:

Propriétés de configuration. Définissez-les via des variables d'environnement, build-extras.gradle ou gradle.properties.

REMARQUE: Avant de suivre ces étapes, supprimez le dossier de plate-forme et réinstallez-le.

Observations: Une fois que vous avez effectué ces étapes, et à nouveau à un moment donné, vous souhaitez créer des versions distinctes, puis définir cdvBuildMultipleApks=true ou commenter parfois ne fonctionnera pas, vous devrez simplement réinstaller la plateforme. (P.S c'est mon observation personnelle, sinon supprimer build-extras.gradle devrait suffire.)

41
Mudasser Ajaz

Eh bien, je viens de changer mon config.xml propriété suivante à false et il a combiné l'apk de construction.

de

<preference name="xwalkMultipleApk" value="true"/>

à

<preference name="xwalkMultipleApk" value="false"/>

Mes systèmes ionic info résultats

Your system information:

Cordova CLI: 6.1.1
Gulp version:  CLI version 3.9.1
Gulp local:   Local version 3.9.1
Ionic CLI Version: 1.7.16
Ionic App Lib Version: 0.7.3
OS:
Node Version: v4.4.4
45
M. Junaid Salaat

À ce jour, en 2018, nous pouvons probablement ignorer la plate-forme mobile x86, car il n'y a en effet pratiquement aucun mobile utilisant un processeur Intel.

Cela a l'avantage d'un APK plus petit. Un fichier APK à plateforme unique est plus petit que le fichier APK à plateformes multiples.

3
Henry Luo

Assurez-vous de vérifier le dossier de sortie.

J'ai remarqué que "cordova build" était toujours sorti à la fois arm7 et x86 après l'ajout à mon build-extra.gradle mais le dossier de sortie contenait également "Android-release.apk".

Suppression des fichiers APK arm7 et x86 du dossier de sortie (projet/plates-formes/Android/build/sorties/apk /)

il les a immédiatement empêchés d'être montrés par "corodva build".

J'espère que cela t'aides.

0
Alex G