【问题标题】:Problems importing an Eclipse project into Android Studio将 Eclipse 项目导入 Android Studio 时出现问题
【发布时间】:2017-07-22 15:55:41
【问题描述】:

我在 2 年前在 Eclipse 中创建了我的第一个 Android 应用程序,现在我有一些时间来改进它。我没有再安装 Eclipse,所以我决定将项目导入 Android Studio。

但现在我遇到了几个问题:

清单合并失败:uses-sdk:minSdkVersion 8 不能小于库 [com.google.android.gms:play-services:10.2.0] 中声明的版本 14

所以在build.gradle中我把它改成了14。然后我得到了下一个错误

检索项目的父项时出错:找不到与给定名称“android:Widget.Material.Spinner.Underlined”匹配的资源。

因此,我将 compileSdkVersiontargetSdkVersion 更改为 25(如果有误,请纠正我)。而我改变了

compile 'com.android.support:support-v4:20.0.0'

进入

compile 'com.android.support:support-v4:25.2.0'

现在我可以构建我的项目了。但是当我尝试运行我的应用程序时,超过 5 分钟(!)我得到了下一个错误:

错误:.dex 文件中的方法引用数不能超过 64K。 通过https://developer.android.com/tools/building/multidex.html了解如何解决此问题

然后我添加了

multiDexEnabled true

compile 'com.android.support:multidex:1.0.1'

android:name="android.support.multidex.MultiDexApplication"

到清单文件。

我的 build.gradle 现在看起来像这样

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        applicationId "<<myApplicationId>>"
        minSdkVersion 14
        targetSdkVersion 25
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:25.2.0'
    compile 'com.google.android.gms:play-services:+'
    compile files('libs/AppFireworks.jar')
    compile files('libs/fcvtgzwtzuliivdcu.jar')
    compile 'com.android.support:multidex:1.0.1'
}

但现在我收到以下弹出窗口和错误

Instant Run 不支持将启用了 multidex 的构建变体部署到 API 级别 20 或以下的目标。要将 Instant Run 与启用了 multidex 的构建变体一起使用,请部署到 API 级别 21 或更高级别的目标。

错误:意外的顶级错误:

错误:java.lang.OutOfMemoryError:超出 GC 开销限制 错误:任务“:app:transformClassesWithDexForDebug”执行失败。 com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException

我做错了什么?我是否必须将minSdkVersion 更改为 21?我希望能够在 Android 4.x 上运行我的应用程序。当我在 Eclipse 中开发时,我可以。到目前为止,从 Eclipse 切换到 Andriod Studio 的情况越来越糟。 :-(

【问题讨论】:

    标签: android eclipse android-studio build.gradle


    【解决方案1】:

    您正在使用compile 'com.google.android.gms:play-services:+' 进行编译

    play service 本身就是一个大库。你不应该使用+ 这意味着所有可用的版本都可以编译

    宁可使用特定版本的播放服务或分解库并使用特定服务,如locationmaps 等。

    你也可以在编译期间使用dexOptions来增加你的内存使用率

    尝试将您的 gradle 文件更改为:

        apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.2"
    
        defaultConfig {
            applicationId "<<myApplicationId>>"
            minSdkVersion 14
            targetSdkVersion 25
            multiDexEnabled true
        }
    
         dexOptions {
            incremental true
            javaMaxHeapSize "4g"
        }
    
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    }
    
    dependencies {
        compile 'com.android.support:support-v4:25.2.0'
        compile 'com.google.android.gms:play-services-maps:9.0.1'
        compile 'com.google.android.gms:play-services-plus:9.0.1'
        compile 'com.google.android.gms:play-services-location:9.0.1'
        compile 'com.google.android.gms:play-services-games:9.0.1'
        compile 'com.google.android.gms:play-services-gcm:9.0.1'
        compile files('libs/AppFireworks.jar')
        compile files('libs/fcvtgzwtzuliivdcu.jar')
        compile 'com.android.support:multidex:1.0.1'
    }
    

    【讨论】:

    • 谢谢 007,我到了。当我使用你的 gradle 文件时,至少应用程序启动了。但建造仍然需要一些时间。所以我读了一些关于播放服务 API 的东西。我不知道我为什么需要它们。当我将它们全部删除时,我在 debug/AndroidManifest.xml 中收到关于 android:value="@integer/google_play_services_version" 的错误。我需要那个吗?如果需要,我应该使用哪个 API 来编译?
    • 不,我不知道。我刚刚从您的列表中尝试了一个随机 API。当我使用 plus API 以及使用 gcm API(其他我只是没有尝试过)时,它会编译。所以我认为最基本的 API 就足够了。但是哪一个是最基本的 API?
    • 最常用于--mapslocation api。你可以在这里了解更多关于 api 的信息developers.google.com/android
    猜你喜欢
    • 2016-06-21
    • 2011-05-03
    • 2015-11-21
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    相关资源
    最近更新 更多