android ant ui-automation build.xml uiautomator

android - compilación ant: no puede localizar tools.jar. Se espera encontrarlo en C: / Archivos de programa / Java / jre7 / lib / tools.jar



ui-automation build.xml (7)

Sé que esta pregunta es popular, pero ninguna de las soluciones puede ayudarme. Utilicé this , this , this y this soluciones, pero nadie me ayudó.

Quiero implementar las Pruebas de uiautomator y necesito compilar mi build.xml con ant, pero obtengo este extraño error.

Yo uso Windows 8.1

Mi variable de sistema JAVA_HOME está establecida en c: / archivos de programas / java / jdk1.7.0_51 y en c: / archivos de programas (x86) / java / jdk1.7.0_51

La variable de mi sistema PATH también se estableció en% JAVA_HOME% / bin, mi% ANT_HOME% se estableció en c: / apache-ant.

Pero cuando ejecuto la compilación de hormigas en la aplicación de Android ridículamente obtengo el

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

¡Pero mi JAVA_HOME apunta a JDK correcto! Me confundí con esto. También reconstruyo mi construcción varias veces, tengo el mismo.

Estaré contento si alguien me ayuda.


  1. Establecer en el sistema -variables:

    • JAVA_HOME: C: / Archivos de programa / Java / jdkVERSION
    • ANT_HOME: C: / Archivos de programa / apache-ant-VERSION
    • PATH:% JAVA_HOME% / bin;% ANT_HOME% / bin; ... (al comienzo de la variable PATH)
  2. Eliminar todo lo relacionado con Java / Ant del usuario -variables

  3. Reinicie la línea de comando (!) Para recibir las nuevas Variables en el contexto de la instancia en ejecución.


Copie el archivo tools.jar de C: / Archivos de programa / Java / jdk1.8.0_91 / lib y haga clic en C: / Archivos de programa / Java / jdk1.8.0_91 / bin. Funcionó bien para mí en mi caso


En lo que respecta al tools.jar , experimenté lo siguiente: al descargar ant, venía con Open Java 7. Sin embargo, el sistema que descargué usa Java 8 u 40 (la versión de Oracle ). Por lo tanto, cuando señalé el lib / jre a través de un enlace lógico en linux, al lugar de tools.jar , obtuve el error de que ahora la versión / subversión no era compatible. Esto se debe a que ant estaba usando la versión 7, y el tools.jar de Oracle ahora era la versión 8.

La solución fue utilizar la ayuda anterior (con la configuración de JAVA_PATH para que se convierta en mi versión de Oracle 8u40 de Java), de modo que tanto el compilador como el archivo tools.jar tengan la misma versión.

El escenario en el que estoy, por lo tanto, ha descargado el jdk tal como venía de Oracle en mi directorio /home/david/Desktop/Android5.0/jdk1.8.0u40: los paquetes de Android tal como vienen en / home / david / Desktop / Android5 Directorio .0, mi espacio de trabajo de Eclipse en / home / david / workspace, y ahora espero poder ir mejor.

El archivo ant-build build.xml está ubicado en mi directorio / home / david / workspace, y se ve así:

<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>

El archivo java en esta pregunta - HelloWorld.java, se está colocando en el directorio / home / david / workspace / build / src / oata - y ahora se compila en su destino que se puede ver arriba, y desde allí se está cargando el archivo jar construido también

Cierto, hay métodos en los que uno puede hacer que una versión de Java pretenda ser otra, pero no quería ir allí, porque estoy configurando un entorno de compilación donde puedo hacer extractos del repositorio, compilación y almacenamiento de El código incorporado en un sitio de descarga.

El ejemplo de build.xml anterior se modificó ligeramente del siguiente tutorial de Ant para la compilación: https://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html

Chicos, espero que también le funcione a usted, porque ant es realmente una de las mejores maneras de construir, ya que puede invocarlo desde la línea de comandos, puede hacer que elija archivos del repositorio primero (GitHub o BitBucket, etc.), y luego, puede enviar por FTP el resultado compilado a su sitio de descarga preferido para desarrolladores, puede comprimir el código para que tenga la versión preparada y comprimida en el peor de los casos ...


Para recuperar este problema, simplemente copie el archivo tools.jar de "C: / ProgramFiles / Java / jdk1.7.0 / lib" directamente en "C: / Archivos de programa / Java / jre7 / lib /". Recuperará los problemas con éxito. .

¡Funciona!..


Resolví el problema con la configuración de% JAVA_HOME% para iniciar el PATH. Funcionó para mí cuando lo puse exactamente al inicio.


Verifique el valor de la variable JAVA_HOME y PATH , en algún momento podría estar poniendo

JAVA_HOME="C:/Program Files/Java/jdk1.8.0/bin" .

en lugar de

JAVA_HOME="C:/Program Files/Java/jdk1.8.0" .

y PATH=%JAVA_HOME%/bin;%PATH% .

simplemente repite la variable PATH en CLI.

echo %PATH%.


Yo también tuve este problema y lo resolví estableciendo variables como esta:

[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

Nota: Establezca todas estas variables de sistema en variables de usuario.

Esto solucionó mi problema.

Espero eso ayude.