自從Google發(fā)布AS 3.0以來,一直都在猶豫要不要升級,要不要升級,要不要升級!昨天手賤升級了之后,呵呵噠!前方無數(shù)個坑慢慢爬吧,僅以記錄自己遇到的關(guān)于AS 3.0來發(fā)過程中遇到的問題和解決方法。
1.錯誤如下
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
解決辦法
在項(xiàng)目的gradle.properties中加入:
android.enableAapt2=false
2.關(guān)于library依賴

圖片.png
背景:
build.gradle(module:library):
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
build.gradle(module:app):
buildTypes {
release {
signingConfig signingConfigs.myconfig
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
greendao {
schemaVersion 2
}
}
原因:app中buildTypes集合不是library的buildTypes集合子集,即app中buildType屬性greendao在依賴的library中找不到。
解決辦法:
在build.gradle(module:library)增加greendao
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
greendao{
}
}
3.關(guān)于多渠道打包錯誤
Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=xiaomiDebug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
之前的打包方式:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
File outputDirectory = new File(outputFile.parent);
def fileName
if (variant.buildType.name == "release") {
fileName = "app_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
} else {
fileName = "app_v${defaultConfig.versionName}_${releaseTime()}_debug.apk"
}
output.outputFile = new File(outputDirectory, fileName)
}
}
}
修改成下面的方式:
applicationVariants.all { variant ->
variant.outputs.all {
if (variant.buildType.name == "release") {
outputFileName = "app_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
} else {
outputFileName = "app_v${defaultConfig.versionName}_${releaseTime()}_debug.apk"
}
}
}
4.錯誤如下
Error:Execution failed for task :app:processDebugAndroidTestResources.
> No slave process to process jobs, aborting
解決辦法
clean和rebuild都沒有成功后,直接點(diǎn)擊 File>Invalidate Caches/Restart后編譯通過
5.錯誤如下
Error:(12, 32) 錯誤: 程序包android.support.multidex不存在
解決辦法
在build.gradle文件里加上compile 'com.android.support:multidex:1.0.1'即可
6.錯誤如下
Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved
versions for app (26.1.0) and test app (27.1.1) differ.
See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.
解決辦法
android {
...
}
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
}
dependencies {
...
}
7.錯誤如下
Vivo Oppo系列手機(jī)運(yùn)行安裝總是失敗
Failure [INSTALL_FAILED_TEST_ONLY]
解決辦法

圖片.png
在該處加入
...
#解決Vivo手機(jī)安裝失敗問題
android.injected.testOnly=false
8.全面屏適配
//在Manifest的application節(jié)點(diǎn)加入屬性
<application
...
android:resizeableActivity="true"
tools:targetApi="n"
.../>
...
<!--適配全面屏手機(jī)-->
<meta-data android:name="android.max_aspect"
android:value="2.1"/>
...
9.依賴
錯誤如下
Error: Could not find common.jar (android.arch.core:common:1.0.0).
Searched in the following locations:https://jcenter.bintray.com/android/arch/core/common/1.0.0/common-1.0.0.jar
解決辦法 將google()放在最前面
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
10.導(dǎo)入項(xiàng)目錯誤
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> More than one file was found with OS independent path 'META-INF/DEPENDENCIES'
解決辦法
android {
...
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
}
...
}