Android各路问题集锦

作者: 吴蜀黍 | 来源:发表于2017-12-14 10:43 被阅读62次

自从Google发布AS 3.0以来,一直都在犹豫要不要升级,要不要升级,要不要升级!昨天手贱升级了之后,呵呵哒!前方无数个坑慢慢爬吧,仅以记录自己遇到的关于AS 3.0来发过程中遇到的问题和解决方法。

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

解决办法
在项目的gradle.properties中加入:

android.enableAapt2=false

2.关于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.关于多渠道打包错误

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都没有成功后,直接点击 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系列手机运行安装总是失败

Failure [INSTALL_FAILED_TEST_ONLY]

解决办法


图片.png

在该处加入

...
#解决Vivo手机安装失败问题
android.injected.testOnly=false

8.全面屏适配

//在Manifest的application节点加入属性
<application
    ...
    android:resizeableActivity="true"
    tools:targetApi="n"
    .../>

...
  <!--适配全面屏手机-->
  <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.导入项目错误

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'
    }
    ...
}

相关文章

  • Android各路问题集锦

    自从Google发布AS 3.0以来,一直都在犹豫要不要升级,要不要升级,要不要升级!昨天手贱升级了之后,呵呵哒!...

  • 不可错过的android好文 - 收藏集 - 掘金

    Android 常见问题集锦 - Android - 掘金前言:在开发中,每个人或多或少会遇到各种各样的问题,有些...

  • Android 问题集锦

    很多问题不是发生一遍,解决了日后就能记住,防止以后类似问题出现时忘记怎么解决,这里做下记录,日后会持续更新! 1、...

  • android 问题集锦

    1. Android 项目换了一个目录后,一直停留在 project setup 解决办法就是,打开项目的grad...

  • android中自带的主题(theme)

    android中自带的主题(theme)的集锦: •android:theme="@android:style/T...

  • Android常见问题集锦

    1、调用webview的页面应及时销毁,防止内存泄漏(具体如下): 2、scrollView设置android:f...

  • Android主流框架面试准备

    MVP Android MVP架构搭建史上最全的Android MVP模式架构面试题集锦Android面试题-架构...

  • 《水形物语》各路彩蛋集锦

    1、本片是著名导演吉尔莫·德尔·托罗导演的第十部电影长片,也是吉尔莫·德尔·托罗导演的第三部怪兽电影。 2、本片是...

  • Android面试题汇总

    面试题汇总 Android复习资料——Android知识点汇总(一) 史上最全的Android面试题集锦 ForA...

  • Android 入门问题集锦 (随时记录)

    【问题1】Android布局 - 解决控件重叠、覆盖的问题 Android默认是在相对布局的模式,默认在左上角,你...

网友评论

    本文标题:Android各路问题集锦

    本文链接:https://www.haomeiwen.com/subject/dtvhwxtx.html