Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo definir la dependencia de v7 appcompat correctamente?

Estoy tratando de obtener un proyecto (heredado) Android para construir. Estoy usando Ant & herramientas de línea de comandos (e IDEA).

En styles.xml, hay referencias que no se pueden resolver como:

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> 

Este es el error original que encontré:

 [...]/res/values/styles.xml:8: error: Error retrieving parent for item: No resource found that matches the given name '@style/Theme.AppCompat.Light'. 

Entonces noté que project.properties tiene esta referencia appcompat que está rota en mi máquina (OS X):

 target=android-18 android.library.reference.1=../../../../adt-bundle-linux-x86_64/sdk/extras/android/support/v7/appcompat 

Intenté corregirlo haciendo la referencia relativa a ${sdk.dir} :

 android.library.reference.1=${sdk.dir}/extras/android/support/v7/appcompat 

Así que ahora ese camino debe ser correcto. Pero ahora cuando corro ant debug :

 BUILD FAILED /opt/android-sdk-macosx/tools/ant/build.xml:573: /opt/android-sdk-macosx/extras/android/support/v7/appcompat resolve to a path with no project.properties file for project /Users/joka/devel/project/ 

Entonces, ¿alguna idea? ¿Cuál es la forma más sencilla de construir este proyecto?

(Tenga en cuenta que los consejos específicos de Ecplise no me serán útiles.)

Editar : La instalación de Android SDK se ve así:

Introduzca aquí la descripción de la imagen

  • "IncludeAntRuntime" no se ha establecido para android ant script?
  • ¿Cómo usar JarJar con Android para cambiar nombres de paquetes de tarros externos?
  • Problema con proguardFile, null devuelto: 1
  • PhoneGap 3.0 Android build Error al ejecutar el comando: ant jar
  • Com.android.dx.util.DexException: Los archivos múltiples dex definen
  • Cómo incluir correctamente la biblioteca de soporte en aplicaciones no Eclipse de Android
  • ¿Cómo puedo desarrollar para Android en Emacs?
  • Instalando PhoneGap, ejecutando el comando de error 'ant'
  • 3 Solutions collect form web for “Cómo definir la dependencia de v7 appcompat correctamente?”

    Me encontré con el mismo problema, así que intenté usar una ruta relativa y que arregló el problema para mí. Parece que sólo los caminos relativos funcionan con android.library.reference. Hice una búsqueda rápida para verificar esto, y encontré este enlace stackoverflow que indica que las rutas absolutas funcionarán con android.library.reference en Windows, pero no en Unix o Mac.

    Paz.

    Como indicó Jay , sólo caminos relativos funcionarán en Unix / Mac.

    Para que funcione Ant, también necesitaba generar build.xml para el proyecto appcompat , usando el comando android update project -p <dir> , en mi caso:

     /opt/android-sdk-macosx/tools/android update project -p /opt/android-sdk-macosx-r22.0.1/extras/android/support/v7/appcompat 

    La configuración exacta para mí era:

    android.library.reference.1=../../../../../../../opt/android-sdk-macosx/extras/‌​android/support/v7/appcompat

    (Esto también funciona en local.properties , que creo que es un lugar mejor, ya que la misma ruta no funcionará para todos los desarrolladores.)


    Simplemente promoví mi comentario de hace 6 meses en una respuesta como alguien sugirió.

    Por cierto, ahora que realmente sé algo sobre el desarrollo de Android, me gustaría instar a cualquiera que tenga la oportunidad de zanjar Ant y mirar en el nuevo sistema de generación basado en Gradle que es totalmente dulce en compraron. Es amigable con el CI y facilita la automatización de cosas útiles (como el uso de diferentes nombres de paquetes y iconos de aplicaciones para diferentes tipos de compilación). El desbordamiento de pila le ayudará cuando tenga problemas.

    Utilizando las bibliotecas de soporte con Gradle, se saltaría todas las molestias anteriores y simplemente :

     dependencies { compile "com.android.support:appcompat-v7:18.0.+" } 

    Su ruta de acceso parece estar equivocada (le falta la parte 'compatibilidad'). La biblioteca v7-appcompat está en

     {sdkpath}/extras/android/compatibility/v7/appcompat 

    Para mí (SDK Tools versión 22.0.5 en Max OS X 10.7.5)

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.