我在2年前在Eclipse中创建了我的第一个Android应用程序,现在我有时间来改进它。我没有安装Eclipse,所以我决定将项目导入Android Studio。
但现在我遇到了几个问题:
清单合并失败:uses-sdk:minSdkVersion 8不能小于库中声明的版本14 [com.google.android.gms:play-services:10.2.0]
所以在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的情况越来越糟。 : - (
答案 0 :(得分:1)
您正在使用compile 'com.google.android.gms:play-services:+'
+
来暗示所有可用的版本来编译
而是使用特定版本的播放服务或分解库并使用location
,maps
等特定服务。
此外,您可以使用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'
}