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

Fav*_*las 36 android intellij-idea android-studio

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

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

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

关于迁移到Gradle更多信息的链接之后,虽然我已经在使用,但Android Studio我已经按照从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')
    }
}
Run Code Online (Sandbox Code Playgroud)

按照指示,我已经gradle assembleDebugAndroid Studio终端窗口上运行但是出现了一些错误.为了解决这个错误,我要创建一个local.propertiessdk.dir=C:\\Program Files (x86)\\Android\\android-sdk并删除android-support-v4.jar从文件/libs夹,并从Libraries->libsProject 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

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

这是我的项目结构

在此输入图像描述

Sco*_*rta 78

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

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

import ':'
Run Code Online (Sandbox Code Playgroud)

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

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

在此之后你应该好好去.