Не удалось создать Android-приложение (см. Как ActionBarSherlock & ViewPagerTabs) с Ant

У меня есть одно приложение для Android, которое использует ActionBarSherlock & ViewPagerTabs. Я использую Eclipse для записи и сборки, и он работает хорошо, пока я не попытаюсь создать его с помощью Ant. Вот что я сделал:

  1. Перейдите в папку ActionBarSherlock, запустите «android update lib-project -path».
  2. Перейдите в папку ViewPagerTabs, запустите «android update lib-project -path». слишком
  3. Перейдите в папку приложения, запустите « проект андроидного обновления – путь».
  4. Запустить «и отлаживать» в папке приложения, и я получил следующие ошибки:

:

[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] ^ 

Так что вопрос №. 1: У меня есть правильные ссылки библиотек в app.properties приложения, и ActionBarSherlock & ViewPagerTabs могут быть успешно созданы, почему я все еще получаю эти ошибки?

Обходной путь для этой проблемы – скопировать все classes.jar в папку bin bin в папку libs приложения и снова запустить ant ant debug. Но мне нужно удалить эти .jar-файлы в папке libs приложения после того, как все файлы .java приложения могут быть скомпилированы.

Запустив «ant debug» снова после этого, я получу следующие ошибки:

 [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 

Мой вопрос № 2: как я могу исправить эту проблему?

Благодаря!

Я, наконец, разрешаю это сам. Я обнаружил, что в папке libp в папке ViewPagerTabs есть android-support-v4.jar. Решение – удаление этой поддержки android-v4.jar, а затем заставить ViewPagerTabs зависеть от ActionBarSherlock (потому что у ActionBarSherlock действительно есть одна копия пакета поддержки).

Я надеюсь, что это полезно для людей, которые хотят использовать ActionBarSherlock & ViewPagerTabs в одном приложении и использовать Ant для создания своего приложения. Удачи.

Вы заявили об этом, потому что в обеих библиотеках есть поддержка android-v4.jar . См. Ответ @ porter-liu для не-maven-сборок.

Для людей, использующих maven, установите зависимость ViewPager как:

  <dependency> <groupId>com.viewpagerindicator</groupId> <artifactId>library</artifactId> <version>2.4.1</version> <type>apklib</type> <exclusions> <exclusion> <groupId>com.google.android</groupId> <artifactId>support-v4</artifactId> </exclusion> </exclusions> </dependency> 

exclusion тег останавливает двойной импорт, устраняя проблему.

Когда вы обновляете lib-проект, вы обновляете проект, чтобы он компилировался как библиотека. Существует отдельный шаг для обновления основного проекта, чтобы он видел нужную библиотеку.

Для каждого проекта библиотеки, который вы собираетесь использовать, выполните

Проект обновления андроида – библиотека ./pathToTheLibrary

Intereting Posts
Как извлечь контроллеры и представления из предварительно созданного приложения в Ionic? Почему datepicker добавляет календарь на мой взгляд? Как получить текст из autocomplete textview android Google cloud messaging: 100 множественных ограничений отправителей Программно включать экран в андроид Панорамная карта google в CoordinatorLayout заставляет recyclerview прокручиваться в библиотеке поддержки дизайна Android 23.0.1 Отправить намерение к приложению в эмуляторе Glide не анимирует ImageView, загруженный из кеша Android – узнать, какой час дня он Пользовательский переход на страницу просмотра Пользовательский текстовый формат BottomNavigationView поддерживает андроид Фильтрация ListFragment из ActionBar в родительской активности Как обновить виджет динамически (не ждать 30 минут для вызова onUpdate)? Как сохранить несколько действий одного и того же приложения в списке последних приложений Как изменить цвет изображения растрового изображения в андроиде?