Не удается перенести проект на Gradle в Android Studio
У меня есть проект, который я уже запускал в Android Studio.
После того, как я открыл проект в Android Studio, я получил сообщение:
Перенести проект на Gradle?
Этот проект не использует систему сборки Gradle. Мы рекомендуем перейти на систему сборки Gradle.
Дополнительная информация о переходе на Gradle
Не показывать это сообщение еще раз.
Следуя ссылке Дополнительная информация о переходе на Gradle, хотя я уже на Android Studio
Я следил за опцией Миграция из проектов IntelliJ.
Так как у меня уже есть файл build.gradle
в корне моего проекта, я изменил его, чтобы включить некоторые зависимости.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile "com.android.support:support-v4:18.0.+"
compile "com.android.support:appcompat-v7:18.0.+"
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
Как указано, я запустил gradle assembleDebug
в окнах терминала Android Studio
, но получал некоторые ошибки. Чтобы решить эти ошибки, мне пришлось создать local.properties
с sdk.dir=C:\\Program Files (x86)\\Android\\android-sdk
и удалить файл android-support-v4.jar
из папки /libs
и из Libraries->libs
из Project Structure
.
Теперь я снова побежал gradle assembleDebug
, и на этот раз он заканчивается без каких-либо ошибок.
Я перезапустил Android Studio
, но после перезагрузки я увидел, что в External Libraries
проекта не было support-v4
и appcompat-v7
, и в одном из моих классов у меня есть import android.support.v4.widget.CursorAdapter;
, помеченный как ошибка с Cannot resolve symbol Cursor Adapter
.
Если я нажму кнопку Sync project with gradle files
, я получил сообщение: The project MyProject is not a Gradle-based project
Может кто-нибудь помочь мне разобраться, как это решить?
Вот мой проект Структура
![enter image description here]()
Ответы
Ответ 1
Проект считает, что проект по-прежнему не является Gradle; это не наличие файла build.gradle, который делает его Gradle, но это то, как проект был настроен в первую очередь. Вам нужно будет повторно импортировать проект, чтобы завершить преобразование в Gradle.
Во-первых, похоже, что у вас нет файла settings.gradle; похоже, что вам это нужно. Поскольку вы создали проект как одномодульный проект, вы можете поместить его в корневой каталог проекта рядом с build.gradle. Он должен содержать следующее:
import ':'
В будущем, если вы добавите больше модулей в свой проект, вы можете преобразовать его в структуру нескольких модулей, но теперь вам не нужно беспокоиться об этом. В любом случае теперь вам нужно выполнить повторный импорт в Android Studio:
- Закрыть проект
- Резервное копирование проекта
- Удалить папку .idea в корневом каталоге проекта
- Удалите все .iml файлы в вашем проекте
- Импортируйте проект в Android Studio и в диалоговом окне, запрашивающем файл, выберите файл build.gradle.
После этого вам должно быть хорошо.
Ответ 2
В моем случае, когда я попытался открыть существующий проект gradle, и AS не распознал его как проект gradle, проблема была внутри файла settings.gradle
. settings.gradle
был поврежден, потому что по какой-то причине точка с запятой отсутствовала. Правильная структура include ':app';
, где app - это название проектного модуля.
Кроме того, если вам нужно, вы можете добавить несколько модулей, например: include ':module1', ':module2', ':module3';
Я надеюсь, что это может помочь кому-то.
Ответ 3
В моем случае: Шаг 1: Структура проектa > Настройки .gradle(откройте его и добавьте-- include ': app';.
Шаг 2: Перейти к Gradle вкладке (обычно она присутствует в левой или правой части Android-студии) > Затем нажмите Обновить все Gradle Проект
Шаг 3: Bang....... Надеюсь, его работа. (Его работы для меня)
Ответ 4
Все, что я сделал, это попробовать импортировать проект с помощью опции "import Gradle, Eclipse ETC" в окне запуска Android Studio, выбрал мой импортированный проект gradle -incompatible, а затем он импортировал, спросив меня автоматически, если я хочу создать проект сборки gradle и voila, он корректно импортировал на этот раз без ошибок.
Этот процесс довольно прост, и вам нечего возиться с неприятными настройками, просто следуйте автоматическим исправлениям IDE и он будет работать.
Наконец-то это сработало для меня!
Ответ 5
Просто проверьте, импортируете ли вы правильную папку, содержащую папку.gradle и.idea.
Ответ 6
- нажмите Файл
- Нажмите "Импорт проектов"
- Нажмите "Пользователи", затем "AndroidStudioProjects"
-
Выберите проект и нажмите OK
ПРИМЕЧАНИЕ. Если вы переходите из eclipse в Android Studio, вы делаете то же самое, но выбираете проекты eclipse.