¿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:
- Construir proyecto android desde jenkins bajo linux - build falla, no puede encontrar importado build.xml
- Cómo crear build.xml para un proyecto de Android?
- SDK.DIR falta? Android proyecto de actualización?
- Incluyendo Google AdMob SDK para usar con Ant
- Cómo poner un tarro en classpath en Eclipse?
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
- Android.App.Activity - el paquete no existe
- Habilitar Soporte MultiDex en Android para lograr métodos de 65K + en Eclipse
- Utilizar Ant para crear un proyecto y ejecutar la aplicación Android de JUnit Test, pero falla la prueba Ant Junit
- Creación de un proyecto de Android con Ant / Ivy
- Documentación para el elemento aapt en la secuencia de comandos Ant
- La construcción de hormigas falla dentro de Eclipse
- Adición de una tarea de hormigón personalizada a custom_rules.xml en mi proyecto de Android
- Android Ant Build
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:
- Haga clic con el botón secundario en el proyecto en el árbol del proyecto y seleccione Propiedades del proyecto
- Seleccione Java Build Path
- Seleccione TAB Order and Export
- Compruebe GoogleAdMobAdsSk-4.0.4.jar (o su versión SDK)
- presiona OK
- Proyecto limpio por menú Proyecto -> Limpieza
- Reconstruir proyecto (Proyecto – Construir automáticamente)
- ¿Cómo mostrar una imagen que es más grande que las dimensiones de la pantalla del teléfono?
- INSERTAR O IGNORAR tabla con la clave AUTOINCREMENT en Android