Je sais que cette question est populaire, mais aucune des solutions ne peut m'aider. J'ai utilisé des solutions this , this , this and this , mais personne ne m'aide.
Je veux implémenter tests uiautomator et j'ai besoin de construire mon build.xml avec ant, mais j'obtiens cette étrange erreur.
J'utilise Windows 8.1
Ma variable système Java_HOME est définie sur c:\program files\Java\jdk1.7.0_51 et sur c:\programs files (x86)\Java\jdk1.7.0_51
Ma variable système PATH est également définie sur% Java_HOME%/bin, mon% ANT_HOME% est défini sur c:\Apache-ant.
Mais quand j'exécute ant build dans le Android derictory app I get the
unable to locate tools.jar. Expected find it in C:\Program Files\Java\jre7\lib\tools.jar
BUILD FAILED
Perhaps Java_HOME does not point to the JDK
Mais mon Java_HOME pointe vers la droite JDK! J'ai confondu avec ça. J'ai aussi reconstruit ma build plusieurs fois, j'ai la même chose.
Sera heureux si quelqu'un m'aide.
J'ai résolu le problème avec la définition de% Java_HOME% pour démarrer le PATH. Cela a fonctionné pour moi lorsque je l'ai réglé exactement au début.
Moi aussi, j'ai eu ce problème et je l'ai résolu en définissant des variables comme ceci:
[1] ANT_HOME - C:\Apache-ant-1.9.3
[2] Java_HOME - C:\Program Files\Java\jdk1.7.0_21
[3] PATH - D:\Android_Development\Android_sdk\platform-tools\;%ANT_HOME%\bin;%Java_HOME%\bin;D:\Android_Development\Android_sdk\tools
Remarque: définissez tous ces paramètres dans les variables système et non dans les variables utilisateur.
Cela a résolu mon problème.
J'espère que cela aide.
Pour récupérer ces problèmes, vous pouvez simplement copier le fichier tools.jar de "C:\ProgramFiles\Java\jdk1.7.0\lib" directement dans "C:\Program Files\Java\jre7\lib \". Vous réussirez à récupérer les problèmes .
Ça marche!..
Défini dans les variables système -:
Supprimer tout ce qui concerne Java/Ant des variables tilisateur -
Redémarrez la ligne de commande (!) Pour recevoir les nouvelles variables dans le contexte de l'instance en cours d'exécution.
En ce qui concerne le tools.jar , j'ai vécu ce qui suit: lors du téléchargement de ant, il était livré avec open Java 7 . Cependant, le système que j'avais téléchargé utilise Java 8 u 40 (la version Oracle ). Par conséquent, lorsque J'ai pointé la lib/jre via un lien logiciel sous linux, à la place du tools.jar , j'ai eu l'erreur, que maintenant la version/Subversion ne correspondait pas. Ceci parce que ant utilisait la version 7, et le tools.jar de Oracle était maintenant la version 8.
La solution consistait à utiliser l'aide ci-dessus (avec le paramètre de Java_PATH pour devenir ma Oracle version 8u40 de Java), de sorte que le compilateur et le fichier tools.jar est de la même version.
Le scénario dans lequel je suis, a donc le jdk téléchargé comme il venait d'Oracle dans mon répertoire /home/david/Desktop/Android5.0/jdk1.8.0u40 - le Android packages comme ils sont venus dans le répertoire /home/david/Desktop/Android5.0, mon espace de travail Eclipse dans/home/david/workspace - et maintenant j'espère être mieux.
Le fichier ant-file build.xml est placé dans mon répertoire/home/david/workspace - et il ressemble à ceci:
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="oata.HelloWorld"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<Java jar="build/jar/HelloWorld.jar" fork="true"/>
</target>
</project>
Le fichier Java dans cette question - HelloWorld.Java, est placé dans le répertoire/home/david/workspace/build/src/oata - et il compile maintenant vers sa destination, vous pouvez voir ci-dessus , et à partir de là, le fichier jar est également en cours de construction.
Vrai - il existe des méthodes où l'on peut faire une version de Java faire semblant d'être une autre - mais je ne voulais pas y aller, car je mets en place un environnement de construction où je peux faire des extraits à partir du référentiel, construire et stocker le code construit dans un site de téléchargement.
L'exemple build.xml ci-dessus est légèrement modifié à partir du didacticiel Ant suivant pour la génération: https://ant.Apache.org/manual/tutorial-HelloWorldWithAnt.html
Les gars - j'espère que cela fonctionne pour vous aussi, car ant est vraiment l'un des meilleurs moyens de construire, car vous pouvez l'invoquer à partir de la ligne de commande, vous pouvez d'abord lui faire choisir des fichiers dans le référentiel (GitHub ou BitBucket etc.), et alors vous pouvez FTP le résultat compilé sur votre site de téléchargement préféré pour les développeurs, vous pouvez compresser le code de telle sorte que vous ayez la version prête et zippée dans le pire des cas ...
Copiez le fichier tools.jar depuis C:\Program Files\Java\jdk1.8.0_91\lib et collez-le dans C:\Program Files\Java\jdk1.8.0_91\bin. Cela a bien fonctionné pour moi dans mon cas
Vérifiez la valeur de Java_HOME
et PATH
variable, parfois vous pourriez mettre
Java_HOME="C:\Program Files\Java\jdk1.8.0\bin" .
au lieu de
Java_HOME="C:\Program Files\Java\jdk1.8.0" .
et PATH=%Java_HOME%\bin;%PATH% .
il suffit d'écho de la variable PATH dans CLI.
echo %PATH%.