Can';t在Android Studio中将项目迁移到Gradle
我有一个已经在Android Studio中运行的项目 在Android Studio中打开项目后,我收到了以下消息: 将项目迁移到Gradle? 此项目不使用Gradle生成系统。我们建议您使用Gradle构建系统迁移到。 有关迁移到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
由于我的项目根目录中已经有一个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:<