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)
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
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 parSERVER_PORT_SERVICE=XXXX
dans$HOME/.jack-settings
etjack.server.service.port=XXXX
dans$HOME/.jack-server/config.properties
.
Étape 2
SERVER_PORT_ADMIN=YYYY
Remplacez parSERVER_PORT_ADMIN=YYYY
dans$HOME/.jack-settings
etjack.server.admin.port=YYYY
dans$HOME/.jack-server/config.properties
.
Étape 3
SERVER_NB_COMPILE=N
Remplacez parjack.server.max-service=N
dans$HOME/.jack-server/config.properties
.
Paramètres supplémentaires
SERVER_TIMEOUT=ZZ
Vous pouvez remplacer parjack.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
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
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é.
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