web-dev-qa-db-fra.com

Augmentation de la taille du tas lors de la création du code source Android sur Ubuntu 15.10

J'essaie de construire le code source Android dans Ubuntu 15.10, mais j'ai une erreur. Maintenant, je veux votre aide pour construire le code source Android.

including ./tools/external/fat32lib/Android.mk ...
Starting build with ninja
ninja: Entering directory `.'
[  0% 1/21542] Ensure Jack server is installed and started
Jack server already installed in "/home/smile/.jack-server"
Server is already running
[  0% 2/21542] Building with Jack: out/target/common/obj/Java_LIBRARIES/core-all_intermediates/with-local/classes.dex
FAILED: /bin/bash out/target/common/obj/Java_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp
Java heap space
Try increasing heap size with Java option '-Xmx<size>'
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
build/core/ninja.mk:146: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

#### make failed to build some targets (08:25 (mm:ss)) ####

Ensuite, je lance la commande "$ Java -Xmx2048m" et je reçois quelques lignes:

 smile@smile:~/Android$ Java -Xmx2048m
Usage: Java [-options] class [args...]
           (to execute a class)
   or  Java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32      use a 32-bit data model if available
    -d64      use a 64-bit data model if available
    -server   to select the "server" VM
    -zero     to select the "zero" VM
    -jamvm    to select the "jamvm" VM
    -avian    to select the "avian" VM
    -dcevm    to select the "dcevm" VM
                  The default VM is server.

    -cp <class search path of directories and Zip/jar files>
    -classpath <class search path of directories and Zip/jar files>
                  A : separated list of directories, JAR archives,
                  and Zip archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose:[class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see Java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See http://www.Oracle.com/technetwork/Java/javase/documentation/index.html for more details.

Qui peut m'aider à augmenter la taille du tas?

Votre aide me sera grandement appréciée

Merci d'avance.

smile@smile:~/Android$ Java -version
Java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)
12
Smile Wei

Je viens de rencontrer le même problème.

Le problème est que la machine virtuelle qui exécute jack ne dispose pas de suffisamment de mémoire.

Vous pouvez essayer d’éditer la commande jvm:

JACK_VM_COMMAND=${JACK_VM_COMMAND:="Java -Xmx4096m"}

ou pour diminuer le nombre de compilations de prises parallèles

SERVER_NB_COMPILE=2

dans le fichier ~/.jack.

Vous pouvez lire la documentation jack pour plus de détails.

EDIT: Changer le fichier .jack n'a pas fonctionné pour moi . Après avoir creusé un peu plus profondément, j'ai découvert que le serveur jack est démarré avec le script out/Host/linux-x86/bin/jack-admin et ses paramètres peuvent être passé avec la variable d’environnement JACK_SERVER_VM_ARGUMENTS.

Ma solution a donc été de la configurer et de redémarrer le serveur Jack avant de construire aosp:

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/Host/linux-x86/bin/jack-admin kill-server
out/Host/linux-x86/bin/jack-admin start-server
22
Miloš Ratković

Si vous construisez Android N, les fichiers de configuration de Jack sont modifiés .

trouvez la configuration que vous voulez changer, trouvez où elle est passée de $HOME/.jack et changez-la ici.

Passage du serveur 1.1 (par exemple, Marshmallow) au serveur 1.3 (par exemple, ____. N)

L'ancien serveur Jack utilisait un fichier de configuration $HOME/.jack. Il a maintenant remplacé par un $HOME/.jack-settings et un $HOME/.jack-server/config.properties

Si ces nouveaux fichiers n'existent pas,

lancez jack-admin start-server et ils seront créés. 

Si vous aviez des paramètres personnalisés dans votre $HOME/.jack, voici comment les adapter.

Étape 1

SERVER_PORT_SERVICE=XXXX Remplacez par SERVER_PORT_SERVICE=XXXX dans $HOME/.jack-settings et jack.server.service.port=XXXX dans $HOME/.jack-server/config.properties.

Étape 2

SERVER_PORT_ADMIN=YYYY Remplacez par SERVER_PORT_ADMIN=YYYY dans $HOME/.jack-settings et jack.server.admin.port=YYYY dans $HOME/.jack-server/config.properties.

Étape 3

SERVER_NB_COMPILE=N Remplacez par jack.server.max-service=N dans $HOME/.jack-server/config.properties.

Paramètres supplémentaires 

SERVER_TIMEOUT=ZZ Vous pouvez remplacer par jack.server.time-out=ZZ, mais c'est Il est recommandé de conserver le réglage par défaut de «7200» (2 heures).

Les autres paramètres du fichier de configuration $HOME/.jack n'ont pas besoin d'être copié. Vous devriez toujours conserver votre fichier de configuration $HOME/.jack pour l'ancien serveur Jack car les deux versions du serveur peuvent s'exécuter. simultanément.

Tiré de serveur Jack , Plus sur Compiler avec Jack

5
Suraj Nath

jack_server_setup.mk sous prebuilts\sdk\tools

ifneq ($(Android_JACK_VM_ARGS),)
jack_vm_args := $(Android_JACK_VM_ARGS)
else
jack_vm_args := -Dfile.encoding=UTF-8 -XX:+TieredCompilation
endif
.....
ifneq ($(dist_goal),)
    $(hide) mkdir -p "$(DIST_DIR)/logs/jack/"
    $(hide) JACK_SERVER_VM_ARGUMENTS="$(jack_vm_args) -Dcom.Android.jack.server.log.file=$(abspath $(DIST_DIR))/logs/jack/jack-server-%u-%g.log" $(PRIVATE_JACK_ADMIN) start-server 2>&1 || exit 0
else
    $(hide) JACK_SERVER_VM_ARGUMENTS="$(jack_vm_args)" $(PRIVATE_JACK_ADMIN) start-server 2>&1 || exit 0
endif

Afin que nous puissions exporter 

Android_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"

pour config jack args . Et puis exécutez ceci ci-dessous:

./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
5
Layne Zhang

goto build/core/config.mk et changez la taille du tas en

APICHECK_COMMAND: = $ (APICHECK) -JXmx8g -J "classpath $ (APICHECK_CLASSPATH)"

alors cela fonctionnera bien .
D'autres solutions ne m'ont pas aidé.

2
Vignesh Prasad V

Essayez juste d'ajouter

export Android_JACK_VM_ARGS="-Xmx8192m -Xms512m -Dfile.encoding=UTF-8 -XX:+TieredCompilation"

à la fin de .bashrc et redémarrez Linux

0
lubik1