Can';t在Android Studio中将项目迁移到Gradle

Can';t在Android Studio中将项目迁移到Gradle,android,intellij-idea,android-studio,Android,Intellij Idea,Android Studio,我有一个已经在Android Studio中运行的项目 在Android Studio中打开项目后,我收到了以下消息: 将项目迁移到Gradle? 此项目不使用Gradle生成系统。我们建议您使用Gradle构建系统迁移到。 有关迁移到Gradle的详细信息 不再显示此消息。 尽管我已经在Android Studio 由于我的项目根目录中已经有一个build.gradle文件,所以我修改了它以包含一些依赖项 buildscript { repositories { mav

我有一个已经在Android Studio中运行的项目

在Android Studio中打开项目后,我收到了以下消息:

将项目迁移到Gradle? 此项目不使用Gradle生成系统。我们建议您使用Gradle构建系统迁移到。 有关迁移到Gradle的详细信息 不再显示此消息。

尽管我已经在
Android Studio

由于我的项目根目录中已经有一个
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')
    }
}
buildscript{
存储库{
mavenCentral()
}
依赖关系{
classpath'com.android.tools.build:gradle:0.7.+'
}
}
应用插件:“android”
依赖关系{
编译文件树(目录:“libs”,包括:“*.jar”)
编译“com.android.support:support-v4:18.0.+”
编译“com.android.support:appcompat-v7:18.0.+”
}
安卓{
编译DK18版
buildToolsVersion“18.0.1”
源集{
主要{
manifest.src文件“AndroidManifest.xml”
java.srcDirs=['src']
resources.srcDirs=['src']
aidl.srcDirs=['src']
renderscript.srcDirs=['src']
res.srcDirs=['res']
assets.srcDirs=['assets']
}
//将测试移动到tests/java、tests/res等。。。
instrumentTest.setRoot('tests'))
//将生成类型移动到生成类型/
//例如,build-types/debug/java、build-types/debug/AndroidManifest.xml。。。
//这会将它们移出src/…下的默认位置,这将
//与主源集正在使用的src/冲突。
//应同时添加新的构建类型或产品风格
//通过类似的定制。
setRoot('build-types/debug')
setRoot('build-types/release')
}
}
按照指示,我在
Android Studio
终端窗口上运行了
gradleassembledebug
,但出现了一些错误。为了解决这个错误,我必须使用
sdk.dir=C:\\Program Files(x86)\\Android\\Android sdk
创建一个
local.properties
,并从
/libs
文件夹和
项目结构的
库->libs
中删除
Android-support-v4.jar
文件

现在我再次运行了gradleassembledebug,这次它完成了,没有任何错误

我重新启动了
Android Studio
,但重新启动后,我看到项目的
外部库上没有
support-v4
appcompat-v7
,在我的一个类中,我有
import-Android.support.v4.widget.CursorAdapter标记为错误,因为
无法解析符号光标适配器

如果我按下按钮“将项目与gradle文件同步”
我会收到一条消息:
项目MyProject不是基于gradle的项目

有人能帮我想办法解决这个问题吗

这是我的项目结构


该项目认为它仍然是一个非梯度项目;并不是build.gradle文件的存在使它基于gradle,而是项目最初是如何建立的。您需要重新导入项目以完成到Gradle的转换

不过,首先,看起来您没有settings.gradle文件;看起来你需要一个。由于您已将项目设置为单个模块项目,因此可以将该文件放在项目的根目录中build.gradle旁边。它应包含以下内容:

import ':'
将来,如果您向项目中添加更多模块,您可能希望将其转换为多模块目录结构,但现在不必担心这一点。在任何情况下,现在都需要在Android Studio中重新导入:

  • 关闭您的项目
  • 备份您的项目
  • 删除项目根目录中的.idea文件夹
  • 删除项目中的所有.iml文件
  • 在Android Studio中导入项目,并在提示您输入文件的对话框中,选择build.gradle文件
  • 在这之后你应该可以走了

  • 点击文件
  • 单击导入项目
  • 单击用户,然后单击AndroidStudio项目
  • 选择您的项目,然后单击“确定”

    注意:如果您要从eclipse迁移到Android Studio,那么您必须做完全相同的事情,但选择eclipse项目


  • 在我的例子中,当我试图打开一个现有的gradle项目时,由于没有像gradle项目那样识别它,问题出在
    settings.gradle
    文件中<代码>设置。gradle
    已损坏,因为出于某种原因,分号丢失。正确的结构是
    include':app'其中app是项目模块的名称

    另外,如果需要,可以放置多个模块,如下所示:
    include':module1',':module2',':module3'


    我希望它能帮助一些人。

    我所做的只是在Android Studio的开始窗口尝试使用“导入Gradle、Eclipse等”选项导入项目,选择了我的Gradle不兼容项目进行导入,然后它自动地问我是否想要做一个gradle构建项目,然后它就导入了,瞧,这一次它没有错误地正确导入了

    这个过程非常简单,没有什么烦人的设置,只需遵循IDE自动修复,它就会工作


    这终于对我起作用了

    在我的例子中:步骤1:项目结构>设置.gradle(打开它并添加--包含“:app”;

    第2步:转到Gradle选项卡(它通常出现在Android Studio的左侧或右侧)>然后单击刷新所有Gradle项目

    步骤3:<