【发布时间】: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”匹配的资源。
因此,我将 compileSdkVersion 和 targetSdkVersion 更改为 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