无法在Android Studio中将项目迁移到Gradle

时间:2014-02-06 15:06:27

标签: android intellij-idea android-studio

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

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

将项目迁移到Gradle? 该项目不使用Gradle构建系统。我们建议您迁移到使用Gradle构建系统。 有关迁移到Gradle的更多信息 请勿再次显示此消息。

关注More Information about migrating to Gradle的链接,虽然我已经Android Studio,但我已经按照Migrating from IntelliJ Projects选项。

由于我已经在项目的根目录中有一个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文件,从{{1}中删除Libraries->libs文件}}

我现在又跑了Project Structure,这次它完成没有任何错误。

我已重新启动gradle assembleDebug但重新启动后,我在项目的Android Studio上看到没有External Librariessupport-v4并且在我的一个课程中我将appcompat-v7标记为自import android.support.v4.widget.CursorAdapter;以来的错误。

如果我按下按钮Cannot resolve symbol Cursor Adapter,我收到了消息:Sync project with gradle files

有人可以帮我弄清楚如何解决这个问题吗?

这是我的项目结构

enter image description here

6 个答案:

答案 0 :(得分:76)

该项目认为它仍然是一个非基于Gradle的项目;不存在使其成为基于Gradle的 build.gradle 文件,但它首先是项目的设置方式。您需要重新导入项目才能完成转换为Gradle。

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

import ':'

将来如果向项目中添加更多模块,可能需要将其转换为多模块目录结构,但现在不需要担心。无论如何,现在您需要在Android Studio中重新导入:

  1. 关闭您的项目
  2. 备份项目
  3. 删除项目根目录中的 .idea 文件夹
  4. 删除项目中的所有 .iml 文件
  5. 在Android Studio中导入项目,在提示您输入文件的对话框中,选择 build.gradle 文件。
  6. 在此之后你应该好好去。

答案 1 :(得分:3)

在我的情况下,当我尝试打开现有的gradle项目并且AS没有像gradle项目那样识别它时,问题出在settings.gradle文件中。 settings.gradle已损坏,因为由于某种原因,分号丢失了。正确的结构是include ':app';,其中app是项目模块的名称。

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

我希望它可以帮助别人。

答案 2 :(得分:3)

就我而言:第1步:项目结构&gt; Settings.gradle(打开并添加 - 包含':app';

第2步:转到Gradle标签(通常出现在Android Studio的左侧或右侧)&gt;然后单击刷新所有Gradle项目

第3步: Bang .......我希望它的工作。(它适用于我)

答案 3 :(得分:1)

我所做的只是尝试在Android Studio的启动窗口中使用“import Gradle,Eclipse ETC”选项导入项目,选择要导入的gradle-incompatible项目,然后通过自动询问我是否导入想要制作一个gradle构建项目,并且这次没有错误,它确实正确导入了。

这个过程非常简单,没有什么可以摆弄令人讨厌的设置,只需按照IDE自动修复程序进行操作即可。

最后这对我有用!

答案 4 :(得分:0)

只需检查是否要导入包含.gradle和.idea文件夹的正确文件夹

答案 5 :(得分:-2)

  1. 点击文件
  2. 点击导入项目
  3. 单击“用户”,然后单击“AndroidStudioProjects”
  4. 选择您的项目,然后单击确定

    注意:如果您从eclipse转移到Android Studio,那么您可以做同样的事情,但选择eclipse项目。