Closed kalyaganov closed 10 years ago
Что-то все равно не понимаю, зачем были удалены библиотеки и строки из манифеста, надо вернуть на место. Попробую тогда установить gradle для эклипса и проверить, как это все будет работать.
Библиотеки в gradle автоматически подгружаются из репозитория (maven например). Для добавления библиотеки в файл build.gradle добавляется описание зависимостей.
dependencies {
+ compile 'com.android.support:support-v4:20.0.+'
+ compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
+ compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.0'
+ compile 'org.ccil.cowan.tagsoup:tagsoup:1.2'
+ compile('org.apache.httpcomponents:httpcore:4.3.2') {
+ exclude module: "httpclient"
+ }
+ compile('org.apache.httpcomponents:httpmime:4.3.5') {
+ exclude module: "httpclient"
+ }
+ compile fileTree(dir: 'libs', include: '*.jar')
+}
Для обновления библиотеки всего лишь надо будет поменять цифру в версии и все.
Версионность можно вести и в манифесте, но удобнее(на мой взгляд) через gradle. В студии заходишь в настройки модуля и выставляешь нужные цифры.
Господа, шел 2014 год. Привязываться к репозиторию ЭТО НОРМА.
Ну да, полезные файлы вроде formatter profile удалены, зато добавлены какие-то graddle-wrapper.jar, graddle-wrapper.properties и gradlew. Этот реквест я проверю и буду исправлять следующие пункты:
Алсо, ты проверял, как собирается и работает с "httpmime:4.3.5"?
Нет, не проверял. Предлагаю сохранять атомарность в коммитах и пулл-реквестах - оставить версию 4.1.2 и обновлять версии библиотек отдельно.
Очевидно, основные плюсы, такие как гибкое управление тьмой зависимостей не столь приемлимы к данному проекту. Но все равно - поменял версию в файле -> IDE подтянула -> запустил статический анализ -> почистил deprecated-ы и норм. Стильно-модно-молодёжно. Т.к. есть жизненный цикл процесса сборки - удобно прикручивать CI, тестирование и т.д.
Алсо, ты проверял, как собирается и работает с "httpmime:4.3.5"? Например, там MultipartEntity объявлен как deprecated.
Так можно использовать любую версию из репозитория, не обязательно эту. Я просто вставил последнюю. Кстати кроме maven есть еще jcenter репозиторий. https://bintray.com/bintray/jcenter Из плюсов зависимостей - не надо таскать везде jar файлы, достаточно запустить синхронизацию и все подтянется.
зато добавлены какие-то graddle-wrapper.jar, graddle-wrapper.properties и gradlew.
Это обертка для gradle, чтобы можно было в любое время перейти на новую версию, поменяв ее в файле build.gradle.
а proguard то нафига?
Ну там обрезание неиспользованного кода, оптимизация и обфускация(если кому она нужна).
Вчера установил эту андроид студию, нормально так и не запустилась. Раз 50 делал Clean Project, Invalidate cache and Restart, и постоянно ошибки: вначале "Local path doesn't exist", потом "Gradle version 1.10 is required. Current version is 2.0", и еще видел "Duplicate files copied". И нигде нет нормального ответа что с ними делать. Так я и не понял, чего это все так рекламируют эту студию. В эклипсе таких проблем не было.
Я еще поразбираюсь, какие из сгенерированных файлов важны, и закомитаю build.gradle, settings.gradle. А также, возможно, эти сгенерированные gradlew и wrapper, если без них не заработает.
Gradlew и wrapper нужно оставить. А в студии выбрать "Open project" и выбрать build.gradle.
В gradle-wrapper.properties прописывается какой файл для gradle брать из репозитория.
В build.gradle прописывается версия classpath 'com.android.tools.build:gradle:0.13.0'
Для синхронизации проекта не надо делать clean project. Можно просто нажать на иконку слева
http://tools.android.com/tech-docs/new-build-system тут есть больше инфы про версии gradle.
Ну да, в gradle-wrapper я указывал и 1.10-all, и 1.12-all. Но иногда студия зачем-то скачивала версию 2.0, хотя я и не просил. В build.gradle у меня версия 0.12.+. Можно потом попробовать с 0.13 и 2.0, но я сомневаюсь, что у меня заработает.
Сделал по-своему, добавив примерно те же файлы, но без удаления библиотек и настроек эклипса. Теперь открывается одинаково и в Эклипсе, и в Студии.
Структура осталась. Тесты не находятся вообще. Их нужно будет переместить куда-то в особую папку и прописать это в build.gradle. В зависимостях автоматически подгружаются Support library, jackson, tagsoup, httpmime. Гугл аналитикс остался в jar. Гиф библиотеки тоже упакованы в jar. Билдить релиз не пробовал, нужно проверить правильно ли сработает proguard.cfg. В остальном норм.