web-dev-qa-db-fra.com

Si j'utilise la nouvelle "bibliothèque AppCompat V7", ai-je toujours besoin de "Bibliothèque de support V4" pour un SDK minimum = 7?

Je migre de Action Bar Sherlock vers Action Bar compat. J'ai enlevé ABS et j'avais support-v4-google maps, j'ai eu des erreurs. Je vais maintenant ajouter la v4 directement au projet pour voir si le problème est résolu, mais je veux savoir: 

Je ne comprends pas vraiment dans la documentation si les bibliothèques sont redondantes ou complémentaires. 

Merci pour les conseils, les pointeurs, etc.

EDIT: C’est l’erreur qui me fait ajouter la v4 avec "jar externe ..." Elle le résout. 

The type Android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. 
It is indirectly referenced from required .class files

Mais si vous dites que je ne devrais pas ajouter la v4 si vous avez déjà la v7, comment puis-je l'expliquer à Eclipse?

Poste pertinent, la solution consistait à ajouter la v4 ici. La hiérarchie du type activité est incohérente lors de l'extension de ActionBarActivity

Édition 2: le fichier jar v4 est inclus dans le projet de bibliothèque v7 si cette opération est effectuée comme suit: http://developer.Android.com/tools/support-library/setup.html#add-library . Ma configuration est la suivante: 

  • Android 4.3: décoché 
  • APrivate Lib: décoché 
  • v7-app .../src: vérifié 
  • v7-app .../gen: vérifié 
  • ADependencie: décoché 
  • jarre brute v7: vérifier 
  • jarre brute v4: vérifier
34
Poutrathor

v7 inclut la bibliothèque de support v4, il n’est donc pas nécessaire de l’avoir là encore

si vous regardez dans le dossier libs de la bibliothèque de support de la v7, vous verrez que le jar v4 est déjà référencé dans la bibliothèque.

56
tyczj

V7 est la nouvelle version de la bibliothèque de prise en charge Android, une nouveauté mise en œuvre dans la bibliothèque de prise en charge V7 of V4. Ainsi, toutes les méthodes et classes de v4 sont disponibles dans la v7.

Donc, si vous ajoutez la bibliothèque v7, inutile d'ajouter la bibliothèque v4.

5
Sunil Kumar

Si vous utilisez Android Studio, la bibliothèque de prise en charge de la v7 est par défaut incluse dans les dépendances maven définies dans votre fichier build.gradle.

dependencies {
    compile 'com.Android.support:appcompat-v7:18.0.0'
}

Le fichier .car appcompat-v7 ne contient PAS les classes v4. Vous pouvez le voir en consultant votre dossier build/exploded-bundles/ComAndroidSupportAppcompatV71800.aar. Ce que j’ai trouvé, c’est que si vous créez un nouveau projet, il inclura également le fichier .jar pour la v4 à partir du dossier SDK.

2
Shaun Kutch

Dans mon cas (Eclipse), cela dépend du jar v4 et v7 que vous importez dans votre projet.

Ma suggestion est d'utiliser à la fois le fichier jar présent dans ce dossier:

2
Alecs

Dans mon cas, «Android-support-v7-appcompat.jar» ne suffisait pas lorsque j'ai utilisé public class MainActivity extends AppCompatActivity dans Eclipse. J'avais besoin d'ajouter aussi Android-support-v4.jar (Chemin de construction -> Bibliothèques -> Ajouter des JAR). Alors seulement AppCompatActivity a été accepté.

0
Apostolos