Как вы импортируете проект Eclipse в Android Studio сейчас?
Использование "Импортировать проект" в Android Studio для проекта Eclipse, используемого для изменения структуры проекта и создания файлов Gradle, но сейчас (я использую AS 0.5.3) он генерирует только файлы IDEA (.iml, .idea), но не Gradle и это не касается файловой структуры.
Как вы импортируете проект Eclipse в Android Studio сейчас?
Обновление: попытка экспортировать файлы Gradle в Eclipse не приведет к их экспорту для приложения, а также не отобразится как модуль в Android Studio.
11 ответов
В более новых версиях Android Studio лучший способ внедрить проект Eclipse/ADT - это импортировать его непосредственно в Android Studio; Раньше мы рекомендовали сначала экспортировать его из Eclipse в Gradle, но мы не обновляли ADT достаточно часто, чтобы идти в ногу с Android Studio.
В любом случае, если вы выберете "Импортировать проект" в меню "Файл" или на экране приветствия при запуске Android Studio, вам следует воспользоваться специальным мастером, который предложит вам скопировать файлы в новую структуру каталогов. вместо того, чтобы импортировать их на месте, он предложит исправить некоторые общие вещи, такие как преобразование зависимостей в включения в стиле Maven и тому подобное.
Не похоже, что вы получаете этот специализированный поток. Я думаю, что он может не распознавать ваш импортированный проект как проект ADT, и по умолчанию используется старое встроенное поведение IntelliJ, которое не знает о Gradle. Чтобы заставить работать специализированный импорт, должно быть следующее:
- В корневом каталоге проекта, который вы импортируете, должен быть файл AndroidManifest.xml.
- Или:
- Корневой каталог должен содержать файлы .project и .classpath из Eclipse.
- или же
- Корневой каталог должен содержать каталоги res и src.
Если ваш проект сложный, возможно, вы не указываете его в качестве корневого каталога, который он хочет видеть для успешного импорта.
Экспорт из Eclipse
Обновите Eclipse ADT Plugin до 22.0 или выше, затем перейдите в File | экспорт
Перейти на Android сейчас, затем нажмите на
Generate Gradle build files
, тогда это сгенерирует файл gradle для вас.Выберите проект, который хотите экспортировать
Нажмите на готово сейчас
Импорт в Android Studio
В Android Studio закройте все открытые проекты. Вы должны увидеть окно "Добро пожаловать в Android Studio".
Нажмите Импортировать проект.
Найдите проект, который вы экспортировали из Eclipse, разверните его, выберите его и нажмите OK.
Попробуйте выполнить следующие действия: 1- нажмите Импортировать проект (Eclipse, ADT,...)
2- Выберите основной каталог вашего проекта Eclipse
3- Сохраняйте настройки по умолчанию. Первые два варианта предназначены для преобразования файлов JAR в удаленные библиотеки (зависимости). Это значит, что при создании Android studio попробуйте найти библиотеку в локальной системе или в удаленных репозиториях. Последний вариант предназначен для отображения только одной папки в качестве приложения после импорта.
4- Затем вы увидите сводку изменений
5. Затем, если вы видите, что синхронизация проекта Gradle не удалась, вы должны перейти в вид проекта (верхний левый угол). Затем вы должны зайти в ваш проект-> приложение и открыть build.gradle.
6. Затем вы должны изменить ваши compilesdkVersion и targetdkVersion на текущую версию, которую вы видите в buildToolsVersion (у меня это 23). Например, в моем проекте я должен изменить 17 на 23 в двух местах
7. Если вы видите ошибку в ваших зависимостях, вам следует изменить ее версию. Например, в моем проекте мне нужно проверить, какую версию библиотеки поддержки Android я использую. Итак, я открываю менеджер SDK и иду вниз, чтобы увидеть версию. Затем я должен заменить мою версию Android Studio на текущую версию и нажать кнопку "Попытаться снова" в правом верхнем углу.
Я надеюсь, что это помогает.
Все стало проще с Android Studio Все, что вам нужно, это сначала выбрать
3.в зависимости от типа проекта и библиотеки, которые вы использовали, например (ActionBarSherlock), вы можете запросить специальный мастер импорта, поэтому нажмите "Далее" и затем "Готово". в этом случае это был простой
но иногда параметры отладки или запуска не работают, и сообщение об ошибке показывает как
"Эта структура проекта не основана на gradle или не переносит ее на gradle"
что-то, чтобы решить эту проблему: закрыть открытый проект eclipse и заново открыть тот же проект, используя тот же процесс, который мы делали ранее с проектом импорта (eclipse adt, gradle и т. д.)). В этот раз android studio добавит все необходимые файлы gradle, и будет работать также опция зеленой отладки., Я сделал это как-то случайно, но это сработало, я просто надеюсь, что это сработает и для вас.
Android Studio была улучшена с момента публикации этого вопроса, и последние версии Android Studio (на момент написания статьи мы находимся на 2.1.1) имеют довольно хорошие возможности импорта Eclipse, поэтому импорт проектов Eclipse непосредственно в Android Studio теперь является лучшим подход для переноса проектов из Eclipse в Android Studio.
Я опишу, как это сделать ниже, включая несколько подводных камней, с которыми можно столкнуться. В частности, я буду иметь дело с импортом рабочей области Eclipse, которая содержит несколько приложений, совместно использующих одну или несколько библиотек проектов (опубликованные до сих пор подходы ограничиваются импортом только одного проекта приложения Eclipse и его библиотек проектов). Хотя я не рассматриваю все возможные проблемы, я подробно расскажу о некоторых из них, и надеюсь, что они будут полезны тем, кто впервые проходит этот процесс.
Я недавно импортировал проекты из рабочей области Eclipse. Это рабочее пространство включало четыре библиотечных проекта, которые были разделены между девятью проектами каждый.
Немного предыстории:
Рабочая область Eclipse содержит несколько проектов, которые могут быть библиотеками или приложениями.
Проект Android Studio аналогичен рабочему пространству Eclipse в том, что он может содержать как библиотечные проекты, так и приложения. Однако проект библиотеки или приложение представлено в Android Studio как "модуль", а в Eclipse - как "проект".
Итак, подведем итог: рабочие пространства Eclipse будут в конечном итоге представлять собой проекты Android Studio, а проекты Eclipse в рабочей области - как модули Android Studio внутри проекта.
Вы должны начать процесс импорта, создав проект Android Studio (Файл / Новый / Новый проект). Вы можете дать этому проекту такое же (или похожее) имя, как и в рабочей области Eclipse. Этот проект в конечном итоге будет содержать все ваши модули, по одному для каждого проекта Eclipse (включая библиотеки проектов), который вы будете импортировать.
Процесс импорта не изменяет исходные файлы Eclipse, если вы помещаете импортированные файлы в другую иерархию папок, поэтому вам следует выбрать папку для этого проекта, которая не входит в исходную иерархию Eclipse. Например, если все ваши проекты Eclipse находятся в папке с именем Android, вы можете создать дочернюю папку с именем AStudio.
Ваш проект Android Studio может быть создан как подпапка этой новой папки. Мастер New Project предложит вам войти в папку проекта верхнего уровня, в которую он создаст ваш проект.
Мастер создания нового проекта Android Studio попросит вас настроить один модуль во время создания проекта. Поначалу это может немного сбить с толку, потому что на самом деле они никогда не говорят вам, что вы создаете модуль, а вы сами; Вы создаете проект с одним модулем. Очевидно, что в каждом проекте должен быть хотя бы один модуль, поэтому, поскольку вы полагаетесь на Eclipse для предоставления своих модулей, ваш начальный модуль будет заполнителем для безразличного выполнения этого формального требования.
Таким образом, вы, вероятно, захотите создать начальный модуль для вашего проекта, который делает как можно меньше. Поэтому выберите "Телефон и планшет" в качестве типа вашего модуля, примите минимальный SDK по умолчанию (уровень API 8) и выберите "Добавить неактивность" для вашего модуля.
Затем выберите один из проектов приложения Eclipse в рабочей области, для которого требуется импортировать наибольшее количество библиотек в качестве первого проекта. Преимущество этого заключается в том, что когда вы импортируете этот проект, все используемые им проекты библиотеки (прямо или косвенно, если для некоторых ваших проектов библиотеки требуются другие проекты библиотеки) будут импортированы вместе с ним как часть процесса импорта.,
Каждый из этих импортированных проектов получит свой собственный модуль в вашем проекте Android Studio. Все эти модули будут братьями и сестрами друг друга (как в иерархии вашего проекта, так и в иерархии папок, в которой размещены их файлы), как если бы вы импортировали модули отдельно. Однако зависимости между модулями будут созданы для вас (в файлах build.gradle вашего приложения) как часть процесса импорта.
Обратите внимание, что после того, как вы завершите импорт, тестирование и отладку этого "наиболее зависимого" проекта Eclipse и поддерживающих его проектов библиотек, вы продолжите импортировать второй проект приложения Eclipse (если у вас есть второй в рабочей области) и его модули проекта библиотеки. (те, которые были импортированы ранее, обнаруживаются мастером импорта как существующие модули и повторно используются для этого нового модуля, а не дублируются).
Таким образом, вам никогда не придется импортировать даже один библиотечный проект из Eclipse напрямую; все они будут введены косвенно, в зависимости от их зависимости от проектов приложений, которые вы импортируете. Это предполагает, что все ваши библиотечные проекты в рабочей области созданы для удовлетворения потребностей одного или нескольких проектов приложений в той же рабочей области.
Чтобы выполнить импорт этого первого проекта приложения, вернитесь в Android Studio, пока вы находитесь в проекте, который вы только что создали, выберите Файл / Новый / Новый модуль. Вы можете подумать, что вам следует использовать File / New / Import Module, но нет, не следует, потому что, если вы сделаете это, Android Studio создаст новый проект для хранения вашего импортированного модуля и импортирует ваш модуль в этот проект., На самом деле вы могли бы создать свой первый модуль таким образом, но тогда модули со второго по N-й по-прежнему требовали бы использования этого другого метода (для импорта модуля в существующий проект), и поэтому я думаю, что просто начать с "пустого" проекта (или, точнее, один со своим пустым, пустым модулем-заполнителем), а затем импортировать каждый из ваших проектов Eclipse как новый модуль в этот проект (т. е. подход, который мы здесь используем), может быть менее запутанным.
Итак, вы собираетесь взять свой практически пустой новый проект и выполнить в нем модуль File / New / New. Мастер, который он вызывает, даст вам выбор, какой тип модуля вы хотите создать. Вы должны выбрать "Импортировать проект Eclipse ADT". Это то, что обращается к мастеру, который знает, как преобразовать проект Eclipse в модуль Android Studio (вместе с модулями библиотеки, от которых он зависит) в вашем текущем проекте Android Studio.
Когда вам будет предложено указать исходную папку, вы должны ввести папку для вашего проекта Eclipse (это папка, содержащая файл AndroidManifest.xml этого проекта).
Затем мастер импорта отобразит имя модуля, который он намеревается создать (аналогично имени вашего исходного проекта Eclipse, но с первой буквой в нижнем регистре, потому что это соглашение, которое отличает имена модулей от имен проектов (которые начинаются с заглавной буквы). case case). Как правило, это хорошо работает, чтобы принять это значение по умолчанию.
Ниже названия модуля находится раздел под названием "Дополнительные обязательные модули". В этом списке будут перечислены все библиотеки, необходимые для импортируемого вами модуля (или любой из его библиотек и т. Д.). Поскольку это первый модуль, который вы импортируете, ни один из них не будет уже в вашем проекте, поэтому по умолчанию для каждого из них будет установлен флажок "Импорт". Вы должны оставить это проверенным, потому что вам нужны эти модули. (Обратите внимание, что при импорте более поздних проектов приложений Eclipse, если необходимая им библиотека уже была импортирована, эти библиотеки все равно будут отображаться здесь, но будет примечание, что "Проект уже содержит модуль с таким именем" и поле "Импорт"). будет отключен по умолчанию. В этом случае вы должны оставить флажок снятым, чтобы импортер подключил только что импортированные вами модули к библиотекам, которые уже были импортированы. Может быть, что принятие по умолчанию имена, которые Android Studio создает для ваших модулей, будут важны для того, чтобы среда IDE могла найти и повторно использовать эти библиотечные модули.
Затем импортер предложит заменить любые jar-файлы и источники библиотек зависимостями Gradle и создать имена модулей camelCase для любых зависимых модулей, проверив все эти опции по умолчанию. Обычно вы должны оставить эти опции отмеченными и продолжить. Тем не менее, прочитайте предупреждение о возможных проблемах. Помните, что вы всегда можете удалить импортированный модуль или модули (через диалоговое окно "Структура проекта") и начать процесс импорта заново.
На следующем экране (YMMV) утверждается, что репозиторий поддержки Android не установлен в моей установке SDK. Он предоставляет кнопку для открытия Android SDK Manager в целях его установки. Тем не менее, эта кнопка не работает для меня. Я вручную открыл менеджер SDK как отдельное приложение и обнаружил, что репозиторий поддержки Android уже установлен. Там было обновление, однако. Я установил это и нажал кнопку "Обновить" в диалоговом окне импорта, но это ничего не дало. Итак, я продолжил, и предполагаемое отсутствие этого репозитория, похоже, не повредило процессу импорта (хотя я получал сообщения о том, что он время от времени пропускал время, работая с импортированным кодом, который я смог умиротворить нажав на предоставленную ссылку, которая исправила проблему - хотя бы временно). В конце концов, эта проблема исчезла, когда я установил обновление в хранилище, так что вы можете вообще не испытывать его.
В этот момент вы нажмете кнопку "Готово", и через некоторое время он должен создать ваши модули и собрать их. Если все идет хорошо, вы должны получить сообщение BUILD SUCCESSFUL на консоли Gradle.
Одна из странностей заключается в том, что в случае сбоя сборки вы можете не увидеть импортированные модули в иерархии проекта. Похоже, вам нужно добраться до первой действительной сборки, прежде чем там появятся новые модули (в любом случае, по моему опыту). Возможно, вы по-прежнему сможете видеть новые модули в диалоговом окне "Структура файла / проекта" (например, если вы хотите удалить их и начать импорт заново).
Помните, что поскольку вы не изменяете свои оригинальные проекты Eclipse, вы всегда можете удалить только что импортированные модули (если импорт идет плохо) и начать все заново. Вы даже можете вносить изменения в Eclipse после удаления модулей Android Studio, если это улучшит импорт во второй раз (при условии, что вы сохраните запасную возможность для создания существующего источника в Eclipse). Как вы увидите, когда мы обсудим управление версиями ниже, вам может потребоваться сохранить возможность сборки в Eclipse, поскольку структура проекта изменяется в Android Studio, поэтому если вам нужно вернуться к коммиту, который предшествует вашему Перейдя в Android Studio (например, чтобы исправить ошибку), вы захотите иметь возможность построить этот более ранний коммит в Eclipse.
Чтобы удалить модуль, необходимо выбрать "Файл / Структура проекта", затем выбрать модуль в левой части диалогового окна и нажать клавишу "Удалить". По какой-то причине я не смог удалить модуль непосредственно в иерархии проекта; это должно было быть сделано с помощью этого диалогового окна "Структура проекта".
Мастер импорта создает файл import-summary.txt, содержащий подробный список любых проблем, с которыми он мог столкнуться, а также действия, предпринятые для их устранения. Вам следует внимательно прочитать его, поскольку он может дать подсказки о том, что происходит, если у вас возникли проблемы со сборкой или запуском импортированного кода. Это также поможет вам найти вещи, которые импортер перемещает, чтобы приспособиться к различной структуре проектов Android Studio.
Если все идет не так, как надо, рассмотрите возможные проблемы, с которыми вы можете столкнуться, а также решения этих проблем:
Вообще говоря, есть два основных типа проблем, с которыми я столкнулся:
- Проблемы с Proguard
- Проявленные проблемы
Когда Proguard испорчен, (обфусцированные) имена методов в ваших библиотеках могут не совпадать с именами, используемыми для их вызова из вашего приложения, и вы получите ошибки компилятора, такие как "ошибка: не удается найти класс символов..."
В Eclipse материал Proguard в значительной степени игнорируется для библиотечных проектов, а материал Proguard для любого создаваемого вами проекта приложения определяет обфускацию и т. Д. Не только для самого себя, но и для обработки всех библиотек, от которых он зависит. И это, как правило, то, что вы хотите.
В Android Studio, однако, вам нужно внести некоторые изменения, чтобы добиться того же эффекта. По сути, в файлах build.gradle для каждого из ваших модулей проекта библиотеки вы захотите что-то вроде этого:
buildTypes {
release {
minifyEnabled false
consumerProguardFiles 'proguard.cfg'
}
}
Где proguard.cfg - это собственный файл конфигурации proguard вашего библиотечного модуля.
Термин "потребитель" в "consumerProguardFiles", по-видимому, относится к модулю приложения, использующему этот библиотечный модуль. Таким образом, команды proguard из этого приложения используются в предпочтении перед командами самого библиотечного модуля, и, очевидно, это приводит к запутываниям, которые скоординированы и совместимы, так что все вызовы из модуля приложения в его библиотечные модули выполняются с соответствующими символами.
Эти записи "consumerProguardFiles" не создаются автоматически во время процесса импорта (по крайней мере, так было на моем опыте), поэтому вам нужно обязательно отредактировать это в файлах build.gradle модулей вашей библиотеки, если они не были созданы для вас во время импорта,
Если вы хотите распространять свои библиотечные проекты отдельно, с запутыванием, вам понадобится отдельный файл proguard для них; Я не сделал этого сам, и это выходит за рамки этого ответа.
В модуле приложения вы захотите что-то вроде этого:
buildTypes {
release {
minifyEnabled true
proguardFiles 'proguard.cfg'
}
}
(Кстати, на момент написания этой статьи, хотя мои приложения работают просто отлично, я еще не подтвердил, что с этим подходом все на самом деле запутывается, поэтому проверьте это сами - например, с помощью декомпилятора, такого как apktool. Я буду проверим это позже и отредактирую этот ответ, когда получу эту информацию).
Проблема второго типа связана с тем, что Eclipse в значительной степени игнорирует файлы манифеста для проектов библиотеки при компиляции проекта приложения, использующего эти проекты библиотеки, в то время как в Android Studio существует чередование двух, которое, по-видимому, не последовательно устанавливает приоритеты. приложение манифестирует над теми из его библиотек.
Я столкнулся с этим, потому что у меня был библиотечный манифест, в котором в качестве основного действия был указан абстрактный класс Activity. В моем приложении был класс, производный от этого абстрактного класса, который был объявлен в манифесте каждого приложения, которое использовало библиотеку.
В Eclipse это никогда не вызывало проблем, потому что манифесты библиотеки игнорировались. Но в Android Studio я использовал этот абстрактный класс в качестве класса активности для приложения, что вызвало ошибку во время выполнения, когда код попытался создать экземпляр этого абстрактного класса.
В этом случае у вас есть два варианта:
- Используйте синтаксис инструментов, чтобы переопределить конкретный материал манифеста библиотеки в манифесте приложения - например:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.goalstate.WordGames.FullBoard.trialsuite" xmlns:tools="http://schemas.android.com/tools" . . <application tools:replace="android:name"
или же,
- Вычеркните практически все из манифестов ваших библиотечных модулей и полагайтесь на манифест модуля приложения для предоставления каждого значения. Обратите внимание, что вам нужно иметь манифест для каждого библиотечного модуля, но требуется не намного больше, чем заголовок и пустой элемент манифеста с атрибутом пакета.
Я попробовал и то и другое, и в итоге получился подход 2. выше, как более простой метод. Однако, если вы хотите распространять свои библиотечные модули отдельно, вам необходимо создать более содержательный файл манифеста, который отражает индивидуальные требования каждого библиотечного модуля.
Вероятно, существует более "правильный" способ сделать это, который устанавливает требования (например, разрешения) для каждой библиотеки в самом манифесте библиотеки и позволяет процессу автоматического чередования комбинировать их с заявленными для приложения. Однако, учитывая, что Eclipse игнорирует манифесты для библиотек, кажется более безопасным, по крайней мере на начальном этапе, полностью полагаться на манифесты приложения и просто убирать манифесты библиотеки до костей.
Помните, что некоторые свойства проекта, а также атрибуты манифеста из вашего проекта Eclipse будут использоваться для создания частей ваших файлов build.gradle. В частности, ваш compileSdkVersion в build.gradle устанавливается на версию сборки проекта из свойств проекта Eclipse, applicationId - это имя пакета из манифеста вашего приложения, а minSdkVersion и targetSdkVersion также копируются из файла манифеста приложения. Раздел зависимостей в build.gradle происходит из зависимостей проекта библиотеки в свойствах вашего проекта.
Обратите внимание, что это может сделать некоторые из ваших значений AndroidManifest.xml избыточными и, возможно, остаточными (то есть неиспользованными). Это может создать путаницу. Насколько я понимаю, значения build.gradle действительно оказывают влияние, и что значения манифеста, такие как targetSdkVersion, больше не используются для целей построения. Тем не менее, они все еще могут использоваться в магазинах приложений, таких как Google Play; Я не знаю наверняка, так или иначе, поэтому на данный момент я просто поддерживаю их в тандеме.
Помимо двух вышеупомянутых проблем, есть и более рутинные вещи, такие как импорт проекта с уровнем сборки проекта 22, когда вы только установили SDK уровня 23 в Android Studio. В этой ситуации, вероятно, лучше отредактировать файл build.gradle модуля приложения, чтобы переместить compileSdkVersion с 22 (импортированное значение) на 23, чем установить SDK для уровня 22, но любой подход должен работать.
На протяжении всего этого процесса, когда что-то не собирается должным образом и вы вносите изменения, чтобы попытаться решить эту проблему, вы можете попробовать создать / перестроить проект и / или Tools / Android / синхронизировать проект с файлами Gradle, и / или File / Invalidate Кэши / перезагрузка, чтобы убедиться, что ваши изменения были полностью включены. Я не знаю точно, когда это действительно необходимо, потому что я не знаю, сколько делается постепенно, когда у вас еще не было успешной сборки, но я выполнял их все довольно регулярно, как своего рода суеверный ритуал, и я Я уверен, что это помогло. Например, когда я получил ошибку во время выполнения Resources$NotFound, которая, по-видимому, была вызвана невозможностью найти ресурс значка запуска, я попробовал все три, и проблема была исправлена.
Когда вы выполнили вышеупомянутое для своего первого проекта Eclipse и достигли успешной сборки, тогда, если вам повезет, вы можете выбрать свой модуль приложения в раскрывающемся списке в верхней части экрана Android Studio слева от кнопки воспроизведения, а затем нажать кнопку Нажмите кнопку воспроизведения, затем выберите устройство или виртуальное устройство Android, и приложение должно быть загружено для запуска.
Точно так же вы сможете создавать подписанную копию своего приложения, используя функцию Build / Generate Signed APK. Обратите внимание, что при запуске подписанной копии могут возникать некоторые ошибки, связанные с импортом, которые не отображаются при использовании кнопки воспроизведения, поэтому необходимо убедиться, что обе они работают, прежде чем решить, что импорт завершен.
После этого вы, вероятно, захотите включить контроль версий. Я сам использую git, но есть ряд других доступных опций.
Контроль версий в основном выходит за рамки этого ответа, но есть несколько вещей, на которые влияет процесс импорта. Во-первых, в Eclipse у вас могут быть разные проекты в разных папках, но при импорте в Android Studio все модули будут создаваться как прямые дочерние папки вашей основной папки проекта. Поэтому, если у вас была отдельная папка git для каждого проекта в Eclipse или для связанных групп проектов, организованных в родительской папке для каждой группы (как я это сделал), это не очень хорошо переведет в Android Studio.
Мои знания об этом ограничены, так как я еще не работал с управлением версиями в Android Studio, так что, возможно, есть способ обойти это, но кажется, что все управление версиями в Android Studio унифицировано на уровне проекта, и поэтому все ваши модули будут находиться в одном архиве git.
Это означает, что вам может потребоваться отказаться от старого git-архива и начать заново с нового архива для импортированного исходного кода. А это значит, что вы захотите сохранить свой старый архив git, чтобы его можно было использовать с Eclipse для выполнения любых необходимых исправлений ошибок и т. Д., По крайней мере, некоторое время. И вам также захочется, чтобы он сохранил историю вашего проекта.
Если вам достаточно повезло, что все ваши проекты были организованы в одном рабочем пространстве Eclipse, и если вы использовали один Git-архив для этих проектов, то вполне возможно, что вы можете просто скопировать свой старый GIT-архив изнутри и под вашим Папка рабочего пространства Eclipse в папке проекта Android Studio и внутри нее. Затем вы можете отредактировать любые все еще актуальные элементы.gitignore из вашего проекта Eclipse в автоматически сгенерированный файл.gitignore для вашего проекта Android Studio и позволить git выяснить, что было изменено в процессе импорта (и некоторые вещи были переместился - например, файл манифеста больше не находится на верхнем уровне вашего модуля). Другие сообщают, что git довольно хорошо понимает, что изменилось; Я не пробовал это сам.
Но даже если вы это сделаете, возврат к коммиту, который предшествует вашему переходу из Eclipse в Android Studio, вернется к набору файлов, которые будут иметь смысл только внутри Eclipse. Это звучит, ну,"трудно" работать с. Тем более что Eclipse по-прежнему будет указывать на свой первоначальный набор папок проекта.
Лично у меня было несколько архивов git для моих различных наборов связанных проектов, поэтому я решил просто сделать перерыв и начать заново git в Android Studio. Если бы вам пришлось это сделать, это могло бы повлиять на ваше планирование, потому что вы хотели бы быть в очень стабильной точке разработки кода, прежде чем переходить в этом случае, так как вы потеряете некоторую доступность этого старого кода в вашем контроле версий. система (например, возможность слияния с кодом после импорта) после перехода на Android Studio.
Часть этого ответа, относящаяся к git, является частично умозрительной, поскольку я еще не работал с управлением версиями своих импортированных файлов проекта, но я хотел включить его, чтобы дать некоторое представление о проблемах, и я планирую обновить свой ответ после того, как я больше работал с контролем версий в Android Studio.
Согласно http://tools.android.com/tech-docs/new-build-system/migrating-from-eclipse-projects, у вас есть несколько вариантов
- просто импортировать
- предварительный экспорт сначала из Eclipse.
Предварительный экспорт из eclipse может быть лучшим выбором, если ваш проект содержит много связей, специфичных для Eclipse. AS не может "перевести" все, что может создать Eclipse. Если вы хотите продолжить использовать Eclipse, а также AS в этом коде проекта, это лучший выбор. Если вы выберете этот метод, пожалуйста, прочитайте ссылку выше, есть некоторые важные предпосылки.
Простой импорт в AS позволит AS "перевести" и перегруппировать проект, и это рекомендуемый метод, особенно если вы не собираетесь возвращаться в Eclipse. В этом случае вы позволяете мастеру AS делать все, и вам не нужно вручную создавать файлы gradle.
В дополнение к ответу Скотта Барты выше, у вас могут возникнуть проблемы с импортом, если есть ссылки на файлы библиотеки рабочей области Eclipse, например:
/workspace/android-support-v7-appcompat
быть распространенным.
В этом случае импорт будет остановлен до тех пор, пока вы не предоставите ссылку (и если вы клонировали ее из git-репозитория, вероятно, ее там не будет) и даже не укажете на вашу собственную установку (например, что-то вроде /android-sdk-macosx/extras/android/m2repository/com/android/support/appcompat-v7) не будет распознан и остановит импорт, оставив вас на ничейной земле.
Чтобы обойти это, поищите ссылки в файлах project.properties или.classpath, которые пришли из проекта Eclipse, и удалите / закомментируйте их, например,
<classpathentry combineaccessrules="false" kind="src" path="/android-support-v7-appcompat"/>
Это позволит вам пройти этап импорта, и затем вы можете добавить эти ссылки в свой build.gradle (Module:app), как указано в руководстве по Android, как показано ниже:
dependencies {
compile 'com.android.support:appcompat-v7:22.2.0'
}
Вот более простой способ миграции:
Начните с примера проекта Android Studio. Откройте android studio и создайте новый проект (или) просто загрузите "пример" студийного проекта здесь: https://github.com/AppLozic/eclipse-to-android-studio-migration. Теперь откройте загруженный проект в Android Studio, следуя приведенным ниже инструкциям.
Импортируйте модули проекта затмения в Android Studio. Выберите Файл -> Создать -> Импортировать модуль. Название изображения
Далее выберите путь к проекту eclipse и импортируйте модули. В случае, если вы видите сообщение "Не удалось синхронизировать проект Gradle", нажмите "Установить инструменты сборки и синхронизировать проект…"
Теперь удалите примеры модулей проекта, выполнив следующие простые шаги:
Откройте файл settings.gradle и удалите "include": app ". Щелкните правой кнопкой мыши на модуле" app "и" Delete ". Теперь у нас есть проект Eclipse, открытый в Android-студии со сборкой Gradle.
Вот несколько других ссылок, которые могут вам помочь:
http://developer.android.com/sdk/installing/migrate.html Источник: http://www.applozic.com/blog/migrating-project-from-eclipse-to-studio/
Остановите установку Android Studio 3.0.1 и вернитесь к 2.3.3 (стабильная версия) . Проверьте стабильную версию, и вы можете найти их много
Все, что вам нужно сделать, удалить и вернуться к другой версии. Да, он просит создать файл Gradle отдельно, что является совершенно новым для меня!
Неудача является трамплином для успеха..
Лучший способ принести в Eclipse/ADT
Проект заключается в том, чтобы импортировать его непосредственно в Android Studio. Вначале GO to Eclipse project
& удалить project.properties
файл.
После этого откройте Android-инструмент Tool & import проект Eclipse (Eclipse ADT, Gradle и т. Д.).
Простые шаги: 1. Перейдите в Android Studio. 2. Закройте все открытые проекты, если таковые имеются. 3. Появится опция импорта проектов, не относящихся к Android Studio (Eclipse ect). 4.Нажмите на него и выберите ваш проект.