¿Cómo incluir JAR en APK sin Eclipse?

Mantengo una aplicación de Android y no uso Eclipse. No estoy usando Eclipse. Estoy usando ant y build.xml y build.properties .

Tengo lugares mi archivo .jar en el directorio libs /. Mi código compila sólo dandy. Pero cuando lo ejecuto en el emulador, el APK de salida no incluye el .jar, así que obtengo un stacktrace runtime:

 ERROR/AndroidRuntime(470): java.lang.NoClassDefFoundError: com.google.ads.AdView 

Mi build.properties parece a esto:

 jar.libs.dir=libs 

Y el directorio libs / contiene mi archivo .jar.

¿Qué debe estar en build.xml para que el archivo .jar externo se incluya en el APK?

Editar: En teoría esta respuesta debería funcionar, pero no para mí. ¿Está fuera de fecha? ¿Lo que da? Cómo agregar bibliotecas jar externas a un proyecto android desde la línea de comandos

Acabo de venir sobre un problema similar y observé que las bibliotecas no deben ser colocadas en "myprojectdir \ lib". Cuando los moví a "myprojectdir \ libs" todo empezó a funcionar.

Resulta que necesitaba actualizar la versión de la ant que estaba usando a 1,8. Durante el proceso de compilación, había estado recibiendo este mensaje de error:

Advertencia: La referencia out.dex.jar.input.ref no se ha establecido en tiempo de ejecución, pero se encontró durante el análisis del archivo de compilación, intentando resolver. Las versiones futuras de Ant pueden admitir referencias a identificadores definidos en objetivos no ejecutados.

Lo busqué en Google y descubrí que necesitaba actualizar Ant, y ahora no recibo esta advertencia, y mi aplicación no obliga a cerrar.

¿Qué debe estar en build.xml para que el archivo .jar externo se incluya en el APK?

Simplemente ponerlo en libs/ es suficiente.

Mi build.properties se parece a esto:

Esa línea no debería ser necesaria. No aparece en mis archivos build.properties que se construyen correctamente con archivos JAR.

Si utiliza dexdump -f classes.dex desde el directorio bin/ de su proyecto, podrá determinar si com.google.ads.AdView hecho allí. Si no lo hizo, entonces algo es extraño con los scripts de construcción. Si lo hizo, entonces quizás hay un JAR dependiente que te falta (aunque esperaría un VerifyError en ese caso).

Utiliza biblioteca de terceros, pero parece que no ejecuta DX en él. Asegúrese de que no sólo su código procesado por la herramienta DX (supongo que Ant lo hace), sino también todas las bibliotecas de terceros que utiliza. Usted puede mirar en la escritura 7Bee que utilizo para convertir usos de la tela al formato de davlik del androide, así que puede trabajar para usted también. Puede encontrar más información sobre el script en la página de Atjeews.

Solución:

  1. Haga clic con el botón secundario en el proyecto en el árbol del proyecto y seleccione Propiedades del proyecto
  2. Seleccione Java Build Path
  3. Seleccione TAB Order and Export
  4. Compruebe GoogleAdMobAdsSk-4.0.4.jar (o su versión SDK)
  5. presiona OK
  6. Proyecto limpio por menú Proyecto -> Limpieza
  7. Reconstruir proyecto (Proyecto – Construir automáticamente)
  • Proyecto Android roto en Eclipse después de la construcción de hormigas
  • Agregue archivos a la carpeta META-INF dentro de Android .apk automáticamente
  • Creación de proyectos android con TeamCity - pruebas y problemas de cobertura de código
  • Generar Android Javadoc con Ant
  • ¿Cómo construyo un proyecto de Android usando Ant? (IntelliJ IDE)
  • Ant versus Eclipse construye para Android: Fortalezas de cada uno?
  • Activar la opción `--multi-dex` en hormiga para Android
  • Creación de un proyecto de android que hace referencia al proyecto de biblioteca android usando ant / teamcity
  • Utilice la "prueba limpia de la hormiga" con el sdk androide más nuevo. '$ {Renderscript.opt.level}' no es un valor permitido para com.android.ant.RenderScriptTask $ OptLevel
  • Construyendo un proyecto de Android con una hormiga teniendo un proyecto de biblioteca dependecy en otro proyecto de biblioteca
  • Uso del código de versión de AndroidManifest.xml en hormiga
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.