从 Eclipse 导入到 Android Studio 不起作用

Posted

技术标签:

【中文标题】从 Eclipse 导入到 Android Studio 不起作用【英文标题】:Import from Eclipse to Android Studio not working 【发布时间】:2015-04-26 03:45:09 【问题描述】:

我已采取以下步骤迁移到 android Studio,但现在我不知道出了什么问题。

    在 Eclipse 中,我导出了 gradle 文件。我这样做是因为在 Android Studio 中导入不是一个选项,因为它会创建项目的副本并且我的项目位于 git 下。 在 Android Studio 中,我执行了“打开现有的 Android Studio 项目”并选择 gradle 文件。 由于我的原始项目使用 Maven 作为 Maven 依赖项,因此我将所有这些都添加到 gradle 文件中。

结果:build.gradle 文件中的大部分内容都是灰色的,告诉我它无法解析符号 [name]。当我构建时,我有 100 多个错误,所有这些都与不存在的依赖项有关(gradle 没有做它的工作)。另外,最近几天我一直在使用 gradle 项目,该文件通常总是要求同步,它会在构建项目之前构建 gradle 文件。就我而言,没有什么。就像我的项目不知道他需要使用 gradle 或者 gradle 配置不正确。这是我的 gradle 文件和一些屏幕截图,可帮助您理解我的问题。任何帮助表示赞赏。

build.gradle:

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:1.1.0'
    

apply plugin: 'com.android.application'

android 
    compileSdkVersion 15
    buildToolsVersion "19.1.0"

    defaultConfig 
        applicationId "XXXXXX"
        minSdkVersion 15
        targetSdkVersion 15

        testApplicationId "XXXXXXX"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    

    compileOptions 
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    

    buildTypes 
        release 
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        
    

    packagingOptions 
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    

    sourceSets 
        main 
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            resources.srcDirs = ['src/main/java']
            aidl.srcDirs = ['src/main/java']
            renderscript.srcDirs = ['src/main/java']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        
    


dependencies 
    compile group: 'com.google.android', name: 'android', version: '4.1.1.4'  //provided
    compile group: 'org.springframework.android', name: 'spring-android-core', version: '1.0.1.RELEASE'
    compile group: 'commons-io', name: 'commons-io', version: '1.4'
    compile group: 'org.springframework.android', name: 'spring-android-rest-template', version: '1.0.1.RELEASE'
    compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.9.13'
    compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.13'
    compile group: 'com.google.code.gson', name: 'gson', version: '2.3'
    compile group: 'org.java-websocket', name: 'Java-WebSocket', version: '1.3.0'
    compile group: 'joda-time', name: 'joda-time', version: '2.3'
    compile group: 'net.erdfelt.android', name: 'apk-parser', version: '1.0.2'
    compile group: 'org.apache.commons', name: 'commons-compress', version: '1.9'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile group: 'org.mockito', name: 'mockito-core', version: '1.10.8'
    testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.6.1'
    testCompile group: 'org.powermock', name: 'powermock-api-mockito', version: '1.6.1'

在 android studio 中的截图:

Android 视图中没有 gradle 子文件夹?正常吗?!

谢谢!

编辑 我确实喜欢评论中的建议。我似乎更进一步,但我收到消息:“Gradle 项目同步失败。基本功能将无法正常工作”。在下面的消息中,我有这个。我能做什么?

Error:Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'.
Possible causes for this unexpected error include:<ul><li>You are using JDK version 'java version "1.7.0_75"'. Some versions of JDK 1.7 (e.g. 1.7.0_10) may cause class loading errors in Gradle.
Please update to a newer version (e.g. 1.7.0_67).
<a href="open.project.structure">Open JDK Settings</a></li><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

【问题讨论】:

“在 Android Studio 中,我做了“打开一个现有的 Android Studio 项目”并选择了 gradle 文件“——它不是一个现有的 Android Studio 项目。选择“导入项目(Eclipse ADT、Gradle 等)”(如果您使用的是 Android Studio 1.1)或“导入非 Android Studio 项目”(如果您使用的是旧版 Android Studio)。它应该会检测到您现有的 build.gradle 文件,并且会简单地设置 Android Studio 元数据,而不需要项目副本。 如果您能提供帮助,我对我的问题进行编辑! 查看***.com/questions/22791150/… 最后,我不得不更改我的 gradle 版本和 gradle 插件版本。等一切都完成后会写一个完整的答案 【参考方案1】:

如果这可以帮助任何人,这里是我进行迁移所遵循的步骤。

build.gradle 文件的导出

进入 Eclipse ADT 项目并单击 File/Export。选择 “Android”文件夹和“生成 Gradle 构建文件”选项。 按照向导,只选择要导出的项目。 您的原始项目应该有一个新的 build.gradle 文件,位于 根。

将 Maven 依赖项转换为 gradle

如果您使用的是 Maven 依赖项,则所有依赖项都如下所示:

<dependency>
    <groupId>org.springframework.android</groupId>
    <artifactId>spring-android-core</artifactId>
    <version>1.0.1.RELEASE</version>
</dependency>

你需要把它转换成这种格式:

dependencies 
    compile group: 'com.google.android', name: 'android', version: '4.1.1.4'
    testCompile group: 'junit', name: 'junit', version: '4.12'

如您所见,如果需要依赖编译,则在其前面加上关键字“compile”。如果是用于测试,请使用关键字“testCompile”。 暂时将其保存在一个临时文件中。

安装 Android Studio 并进行配置 从这个位置安装 Android Studio:http://developer.android.com/sdk/index.html 在下载/安装时,打开您之前生成的 build.gradle 文件并更改以下内容。替换

apply plugin: 'android'

apply plugin: 'com.android.application'

确保您的“buildScript”代码块看起来像这样

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:1.1.0'
    

最后,在android代码块之外添加repositories和依赖信息。

repositories 
    mavenCentral()

dependencies 
   compile 'com.google.android:android:4.1.1.4'
   ...

现在 Android Studio 已安装,打开它。选择“导入项目(Eclipse ADT、Gradle 等)”并导航到 build.gradle 文件。 Android Studio 现在应该创建运行项目所需的所有元数据和文件。如果您的计算机上的工具版本有错误,请返回 Android Studio 的介绍屏幕并选择“配置/SDK 管理器”。下载项目运行所需的任何内容。 在项目中,进入“文件/项目结构”。在项目选项卡中,确保 gradle 版本为 2.2.1,android 插件为 1.1.0。 下一步应该是创建配置并在可用的 USB 设备或模拟器上运行它。

你可以走了!

【讨论】:

以上是关于从 Eclipse 导入到 Android Studio 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从eclipse导入到android studio遇到的坑

从 Eclipse 导入项目到 Android Studio

从 Eclipse 导入到 Android Studio:找不到捆绑消息。AndroidJpsBundle,语言环境 pl_PL

Eclipse Android 导入到 Android Studio - 没有提供目标目录

如何将 Eclipse 中的 android 项目导入 Android Studio?

将 android 项目从 Eclipse 导入 Android Studio 时发生错误