Intereting Posts
Задайте ширину для соответствия ограничениям в ConstraintLayout Обновление Android Studio 2.2: выровненный APK (zipAlign), не сгенерированный с использованием нового Gradle Plugin 2.2.0 Как установить точные, повторяющиеся сигналы тревоги в Android 4.4? Высота изображения в виде обертывания отображаемого изображения Обнаружение браузера в приложении (WebView) с помощью PHP / Javascript Получение контактов для Android Android: DownloadManager и COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED Можете ли вы восстановить удаленные модули .iml-файл в андроид-студии Пример кода для обработки исключений Где схемы для файлов XML в проекте Android? ObjectAnimator со свойством scale делает bg black? Результаты поиска андроида autocompletetextview скрыты под клавиатурой Командная строка Gradle: не удалось найти целевой андроид-22 Удаление файлов через ContentResolver в отличие от их удаления через 'file.delete ()' IllegalArgumentException: тип окна не может быть изменен после добавления окна

Как использовать Gradle для создания файлов проекта Eclipse и Intellij для Android-проектов

Возможно ли генерировать файлы проекта Eclipse и Intellij для проектов Android с использованием Gradle?

В maven мы будем делать mvn eclipse:eclipse и в PlayFramework мы будем play eclipsify . У Gradle есть эта функция для проектов Android?

Я установил Gradle (1.6) и Android SDK Manager (22.0.1), объясненный здесь

Это мой файл build.gradle:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.0' } } apply plugin: 'android' apply plugin: 'eclipse' sourceCompatibility = 1.7 version = '1.0.2' repositories { mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { buildToolsVersion "17" compileSdkVersion 8 defaultConfig { versionCode 1 versionName "1.0" minSdkVersion 7 targetSdkVersion 8 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } } 

И затем я запускаю команду:

 gradle clean build cleanEclipse eclipse 

Он отлично работает, но когда я импортирую проект в Eclipse, он выглядит как обычный Java-проект.

Кто-нибудь знает, как получить Gradle для создания конкретных файлов проекта Eclipse ?

Является ли это приоритетной функцией Gradle?

— ОБНОВИТЬ —

Я считаю, что это проблема. Поэтому я опубликовал его в выпуске Team Tools № 57668 . Пожалуйста, запустите их, чтобы они определили приоритет проблемы 🙂

— ОБНОВИТЬ —

Это не похоже, что команда Android Tools изучает эту проблему. Так что теперь я перешел в Android Studio, где я могу импортировать проект gradle с зависимостями через IDE.

Solutions Collecting From Web of "Как использовать Gradle для создания файлов проекта Eclipse и Intellij для Android-проектов"

Gradle сам по себе является универсальным инструментом сборки, он не создан специально для Android.

Все функции включены с помощью плагинов. Традиционно создание плагинов не создает структуру проекта. Это работа с конкретными проектами. Под этим подходом подключается плагин android для Gradle.

Проблема в том, что текущий инструмент android в SDK генерирует старый тип структуры проекта (ant builds). Новая структура проекта может быть создана только через Android Studio.

Существует концепция archetypes в таких инструментах, как Maven, которые позволяют использовать шаблоны проектов. Gradle еще не поддерживает это (запросы были сделаны для этой функции).

Обратитесь к этой теме: http://issues.gradle.org/browse/GRADLE-1289 , некоторые пользователи предоставили сценарии для генерации структуры.

Выполняется функция инициализации сборки: https://github.com/gradle/gradle/blob/master/design-docs/build-initialisation.md

Надеюсь, кто-то может написать сценарий для этого, обратитесь к этому руководству для новой структуры проекта: http://tools.android.com/tech-docs/new-build-system/user-guide

Обновить

В настоящее время существует официальная ОС Android : Android Studio . Он основан на Intellij, и новая система сборки основана на Gradle.

Как ответили в выпуске 57668 командой Android (поднятой @arcone)

Участник проекта №2 x … @ android.com

Плагин eclipse несовместим с плагином Android.

Вы не сможете импортировать проект градиента Android в Eclipse, используя поддержку Gradle по умолчанию в Eclipse.

Чтобы заставить его работать в Eclipse, нам нужно будет изменить плагин Gradle для Eclipse, так же, как мы модифицируем поддержку Gradle в IntelliJ

Это команда Android работает над плагином gradle для IntelliJ и плагин gradle для Eclipse тоже нуждается в обновлении.

Что теперь возможно с Eclipse

0,1. Импортировать проект как общий проект

.project

 <?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>OpenSpritz-Android</name> <comment></comment> <projects> </projects> <buildSpec> </buildSpec> <natures> </natures> </projectDescription> 

импорт-андроид-Gradle-в-общий-проект

0,2. Поместите 2 Eclipse. «Dot» файлы в модули в /OpenSpritz-Android/app/src/main и /OpenSpritz-Android/lib/src/main

надстройка затмения-файлы

.project

 <?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>OpenSpritz-Android-app</name> <comment></comment> <projects> </projects> <buildSpec> <buildCommand> <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>org.eclipse.jdt.core.javabuilder</name> <arguments> </arguments> </buildCommand> <buildCommand> <name>com.android.ide.eclipse.adt.ApkBuilder</name> <arguments> </arguments> </buildCommand> </buildSpec> <natures> <nature>com.android.ide.eclipse.adt.AndroidNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> </natures> </projectDescription> 

.classpath

 <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="java"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> к <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="java"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> 

0,3. Импортировать как существующий код Android в рабочее пространство

Результаты

Вы можете просматривать код знакомым образом, но даже после этого вы не сможете работать с Eclipse ADT.

+0,4.

Теперь вы можете запускать сборку и задачи с gradle CLI градиента или Nodeclipse / Enide Gradle для Eclipse ( торговая площадка )

Начало

Обсудить на https://github.com/Nodeclipse/nodeclipse-1/issues/148

Следующие работали для меня

 eclipse.classpath.plusConfigurations += configurations.compile eclipse.classpath.file { beforeMerged { classpath -> classpath.entries.removeAll() { c -> c.kind == 'src' } } withXml { def node = it.asNode() node.appendNode('classpathentry kind="src" path="src/main/java"') node.appendNode('classpathentry kind="src" path="src/debug/java"') node.appendNode('classpathentry kind="src" path="gen"') node.children().removeAll() { c -> def path = c.attribute('path') path != null && ( path.contains('/com.android.support/support-v4') ) } } } eclipse.project { name = 'AndroidGradleBasic' natures 'com.android.ide.eclipse.adt.AndroidNature' buildCommand 'com.android.ide.eclipse.adt.ResourceManagerBuilder' buildCommand 'com.android.ide.eclipse.adt.PreCompilerBuilder' buildCommand 'com.android.ide.eclipse.adt.ApkBuilder' } 

Источник – http://blog.gouline.net/2013/11/02/new-build-system-for-android-with-eclipse/

Образец – https://github.com/krishnaraj/oneclipboard

Есть четыре проблемы с комбинацией плагинов Gradle «com.android.application» и «eclipse»: во-первых, пути к классам конфигурации не добавляются в classpath Eclipse, но это легко исправить. Во-вторых, что-то должно быть сделано относительно зависимостей .AAR. Это было немного сложнее. В-третьих, нам нужно включить генерируемые источники для таких вещей, как R.java. Наконец, нам нужно включить сам Android.jar.

Я смог взломать конфигурацию градиента, которая создавала бы соответствующие файлы .classpath для Eclipse из Android Studio build.config . Эффекты были очень удовлетворительными для моего процессора, который постоянно работал с Android Studio. Eclipse видит результирующий проект как полностью функциональный Java-проект, но только это.

Я закончил тем, что прямо в build.gradle в моем приложении-проекте:

 apply plugin: 'eclipse' eclipse { pathVariables 'GRADLE_HOME': gradle.gradleUserHomeDir, "ANDROID_HOME": android.sdkDirectory classpath { plusConfigurations += [ configurations.compile, configurations.testCompile ] file { beforeMerged { classpath -> classpath.entries.add(new org.gradle.plugins.ide.eclipse.model.SourceFolder("src/main/java", "bin")) // Hardcoded to use debug configuration classpath.entries.add(new org.gradle.plugins.ide.eclipse.model.SourceFolder("build/generated/source/r/debug", "bin")) classpath.entries.add(new org.gradle.plugins.ide.eclipse.model.SourceFolder("build/generated/source/buildConfig/debug", "bin")) } whenMerged { classpath -> def aars = [] classpath.entries.each { dep -> if (dep.path.toString().endsWith(".aar")) { def explodedDir = new File(projectDir, "build/intermediates/exploded-aar/" + dep.moduleVersion.group + "/" + dep.moduleVersion.name + "/" + dep.moduleVersion.version + "/jars/") if (explodedDir.exists()) { explodedDir.eachFileRecurse(groovy.io.FileType.FILES) { if (it.getName().endsWith("jar")) { def aarJar = new org.gradle.plugins.ide.eclipse.model.Library(fileReferenceFactory.fromFile(it)) aarJar.sourcePath = dep.sourcePath aars.add(aarJar) } } } else { println "Warning: Missing " + explodedDir } } } classpath.entries.removeAll { it.path.endsWith(".aar") } classpath.entries.addAll(aars) def androidJar = new org.gradle.plugins.ide.eclipse.model.Variable( fileReferenceFactory.fromPath("ANDROID_HOME/platforms/" + android.compileSdkVersion + "/android.jar")) androidJar.sourcePath = fileReferenceFactory.fromPath("ANDROID_HOME/sources/" + android.compileSdkVersion) classpath.entries.add(androidJar) } } } } // We need build/generated/source/{r,buildConfig}/debug to be present before generating classpath // This also ensures that AARs are exploded eclipseClasspath.dependsOn "generateDebugSources" // Bonus: start the app directly on the device with "gradle startDebug" task startDebug(dependsOn: "installDebug") << { exec { executable = new File(android.sdkDirectory, 'platform-tools/adb') args = ['shell', 'am', 'start', '-n', android.defaultConfig.applicationId + '/.MainActivity'] } } 

Запустите gradle eclipse и у вас будет проект Eclipse, который можно импортировать и скомпилировать. Однако этот проект действует как обычный Java-проект. Чтобы построить apk, я должен вернуться к командной строке gradle installDebug и выполнить gradle installDebug . gradle processDebugResources подбирает изменения в файлах Android XML и восстанавливает файлы в файле build/generated/source . Я использую программу «monitor» с Android SDK для просмотра журналов приложений. Я до сих пор не нашел способ отладки без Android Studio.

Единственные функции, которые я пропустил в Android Studio, – это отладка (но у кого есть время для ошибок!) И визуальное редактирование ресурсов.

Может быть, мне не хватает чего-то очень очевидного, но разве плагин eclipse не ищет того, что вы ищете? Это создает файл .project, а также файл .classpath и обновляет их по мере необходимости, когда запускает последующие времена.

Существует также плагин IDEA , хотя я не использовал этот и не могу с ним разговаривать.

Надеюсь, это поможет.

Я создал новый плагин Gradle, который генерирует соответствующие файлы Eclipse .project и .classpath на основе ответа, предоставленного Johannes Brodwall в этом переполнении стека.

Подробнее см. https://github.com/greensopinion/gradle-android-eclipse .