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:

  • Introducción al SDK de Android de WeChat
  • Valor de AudioSource para el micrófono USB en Android
  • KeyStore y Alias ​​clave
  • Android - Implementación del fragmento de carga
  • Android: rejilla del centro horizontalmente
  • Recursos $ NotFoundException: Resource ID # 0x0 en AlertDialog
  • <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

  • Cómo establecer una altura máxima con contenido de recapitulación en android?
  • Cómo utilizar Flags en android?
  • ¿Cómo se vencen las suscripciones de Google Play?
  • ¿Puede alguien ayudarme con Android RemoteControlClient?
  • Evite que un solo toque cambie el progreso de SeekBar
  • Cómo cambiar el tamaño de fuente en una aplicación completa mediante programación, Android?
  • 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.