2010-05-11 2 views
1

Je sais que je peux avoir Eclipse construire pour 1,5 et 1,6 pour SDKs différentes densités d'écran si je l'extrait de code suivant dans AndroidManifest.xmlEst-il possible d'avoir un build.xml Android qui supporte 1.5, 1.6 et supporte également différentes densités d'écran?

<supports-screens android:anyDensity="false"/> 
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" /> 

et si je mets mes actifs de la manière suivante dans le dossier res :

/res/drawable-hdpi-v4 
/res/drawable-ldpi-v4 

Mon default.properties a la ligne suivante:

# Indicates whether an apk should be generated for each density. 
split.density=false 
# Project target. 
target=android-4 

Cette configuration me permet de créer des versions 1.5 et 1.6 dans Eclipse IDE, mais échoue avec l'erreur suivante lorsque j'essaie de créer une ligne de commande.

Buildfile: build.xml 
    [setup] Project Target: Android 1.6 
    [setup] API level: 4 
    [setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (3) is lower than the project target API level (4) 
Target "resource-src" does not exist in the project "<project-name>". It is used from target "compile". 

Cette erreur se produit si j'utiliser build.xml généré par 1,5 SDK ou le 1,6 SDK (avec -resource-src, les cibles -aidl).

Je pense que sur la ligne de commande le build.xml est par défaut à 1.5 SDK, je ne sais pas comment le faire fonctionner avec 1.6+ SDKs et apprécierait toutes les pensées, les commentaires à ce sujet.

Mon but est d'avoir un script qui sera compilé pour tous les SDK Android tout en prenant en charge différentes densités d'écran.

Merci

Répondre

0

Ok, j'aurais répondu moi-même un certain temps en arrière, je considère résolu cette question. Le problème ici était Google en changeant le fichier <android-home>/tools/ant/main_rules.xml qui est utilisé pour les compilations en ligne de commande dans Android 2.2 je pense. La réponse est simple en fait, je viens de mettre à jour mon SDK Android au plus tard et dans mon fichier build.xml, j'ai écrasé les cibles définies dans <android-home>/tools/ant/main_rules.xml que j'avais besoin de modifier. C'est la manière recommandée selon Google et maintenant toutes mes applications sont construites à partir d'Android 1.5.