Échec de création d'application Android (reportez-vous à la fois ActionBarSherlock & ViewPagerTabs) avec Ant
J'ai une application Android qui utilise ActionBarSherlock & ViewPagerTabs. J'utilise Eclipse pour écrire et construire, et il fonctionne bien jusqu'à ce que j'essaie de construire avec Ant. Voici ce que j'ai fait:
- aller à ActionBarSherlock dossier, exécutez "mise à jour android lib-projet --chemin".
- aller à ViewPagerTabs dossier, exécutez "mise à jour android lib-projet --chemin ." trop
- accéder à l'app dossier, exécutez "mise à jour android projet --chemin".
- exécuter "et debug" sous dossier app, et j'ai eu des erreurs suivantes:
:
[javac] C:\Android\TestApp\src\com\test\App\TestActivity.java:46: cannot find symbol
[javac] symbol : method getSupportActionBar()
[javac] location: class com.test.App.TestActivity
[javac] final ActionBar ab = getSupportActionBar();
[javac] ^
Donc, la question N'. 1: j'ai corriger les références de bibliothèque en application du projet.propriétés et ActionBarSherlock & ViewPagerTabs pourrait être construit avec succès, pourquoi ai-je encore ces erreurs?
Il y a une solution pour contourner ce problème, copiez tous les classes.jar en vertu de la bibliothèque du dossier bin dans l'app du dossier libs, et exécutez la commande "ant debug" de nouveau. Mais j'ai besoin de supprimer ces .les fichiers jar dans le dossier app du dossier libs après tout .fichiers java de l'application a pu être réalisé.
De l'exécution de "ant debug" encore une fois, après cela, je vais obtenir des erreurs suivantes:
[dx] processing archive C:\Android\ActionBarSherlock\library\bin\classes.jar...
[dx] ignored resource META-INF/MANIFEST.MF
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl.class...
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl.class...
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat.class...
[dx] processing android/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs.class...
[dx] processing android/support/v4/app/ActionBar$LayoutParams.class...
[dx] processing android/support/v4/app/ActionBar$OnMenuVisibilityListener.class...
[dx] processing android/support/v4/app/ActionBar$OnNavigationListener.class...
[dx] processing android/support/v4/app/ActionBar$Tab.class...
[dx] processing android/support/v4/app/ActionBar$TabListener.class...
[dx] processing android/support/v4/app/ActionBar.class...
[dx] processing android/support/v4/app/ActivityCompatHoneycomb.class...
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ActivityCompatHoneycomb;
[dx] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
[dx] at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[dx] at com.android.dx.command.dexer.Main.processClass(Main.java:486)
[dx] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
[dx] at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[dx] at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
[dx] at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
[dx] at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
[dx] at com.android.dx.command.dexer.Main.processOne(Main.java:418)
[dx] at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:206)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.android.dx.command.Main.main(Main.java:95)
[dx] 1 error; aborting
Ma question N'.2: comment puis-je résoudre ce problème?
Merci!
OriginalL'auteur Porter Liu | 2012-03-02
Vous devez vous connecter pour publier un commentaire.
J'ai enfin le résoudre moi-même. Je trouve qu'il y a un android-support-v4.jar dans ViewPagerTabs' dossier libs. La solution est -- la suppression de cette android-support-v4.jar puis faire ViewPagerTabs dépendent ActionBarSherlock (parce que ActionBarSherlock effectivement avoir une copie du Support Package).
J'espère que c'est utile pour les personnes qui veulent utiliser ActionBarSherlock & ViewPagerTabs dans une application et utiliser Ant pour construit sa demande. Bonne chance.
Notez que vous avez également à rendre ActionBarSherlock exportation android-support (c'est dans la Structure de Projet->les Modules de dialogue). Je pense que vous faites de toute façon. Il agit un peu bizarre...
Et bien qu'il compile fine, IntelliJ arrose les charges des erreurs de compilation à travers le projet. :-/
Aha j'ai trouvé le problème: Le de la dépendances des questions. Vous devrez avoir ActionBarSherlock avant que votre application source.
Oui, il est généralement une affaire de double support-v4.jar les fichiers inclus dans la bibliothèque de projets.
OriginalL'auteur Porter Liu
Vous dit sa parce que les deux de la bibliothèque ont android-support-v4.jar. Voir @porter-liu réponse pour les non-maven construit.
Pour les personnes à l'aide de maven, définissez votre
ViewPager
dépendance:La
exclusion
tag arrête le double d'importation de résoudre le problème.OriginalL'auteur Chris.Jenkins
Lorsque vous mettez à jour des lib-projet, vous êtes à la mise à jour du projet de sorte qu'il compile comme une bibliothèque. Il y a une étape distincte pour mettre à jour votre principal projet afin qu'il voit la bibliothèque, elle exige.
Pour chaque projet de bibliothèque que vous allez utiliser, exécuter
OriginalL'auteur Alexander Lucas