Android studio编译问题总结(一)

Android studio编译问题总结(一)

前言

使用Android studio进行工程构建,先来了解下基础知识。

  1. CompileSdkVersion是SDK的版本号,例如API-19、API-20、API-21等等。
  2. buildeToolVersion是构建工具的版本,其中包括了打包工具aapt、dx等等。这个工具的目录位于sdk/build-tools/XX.XX.XX
  3. CompileSdkVersion和buildeToolVersion关系是:buildeToolVersion版本号一般是API-LEVEL的版本号。 例如API20对应的build-tool的版本就是20.0.0。
  4. 高版本buildeToolVersion可以构建低版本的CompileSdkVersion,但低版本buildeToolVersion的不能构建高版本的CompileSdkVersion
  5. 每一个Gradle插件版本都对应一个build工具版本,不能混用。如gradle 3.0.1的build工具最低要求是26.0.2,如果在工程的build.gradle中未指定,则会默认使用gradle对应的最低build版本来构建

常见问题一:Failed to find Build Tools revision 26.0.2

详细错误如下:

Error:A problem occurred configuring project ':app'.
> Failed to find Build Tools revision 26.0.2

当使用as编译时候出现该问题,提示无法找到编译tools的版本号,此时需要怎么解决呢?
解决办法:
1.查看sdk目录Android\Sdk\build-tools下是否存在26.0.2版本。报错时候截图如下:在这里插入图片描述
2.如果发现该版本的build-tools不存在,此时可以修改编译工具版本号。方法如下:
(1)修改编译工具版本为sdk路径下存在的版本
工程下app/build.gradle的编译工具版本号:

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.0" ##一些工具自动生成的编译脚本可能无此行,此时会用默认as版本对应的最低版本的tools,如当前使用的是As 版本是3.0.1,此时需要最低版本为26.0.2。此时需要指定版本号,增加该行,改为26.0.2或者sdk目录下存在的版本号28.0.0(必须大于as版本要求的版本)
    defaultConfig {
        applicationId "com.example.demo.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

(2)下载对应缺少版本的build-tools,放到Android\Sdk\build-tools下

常见问题二:Failed to find target with hash string ‘android-21’ in:

具体出现信息如下:

Error:A problem occurred configuring project ':app'.
> Failed to find target with hash string 'android-21' in: C:\Users\skycnlr\AppData\Local\Android\Sdk

解决办法:
1.修改编译工具版本为sdk路径platform下存在的api版本号
2.设置中下载对应的api版本
在这里插入图片描述

常见问题三:ARouter::Compiler >>> No module name, for more information, look at gradle log.

解决办法:
Error:Execution failed for task ‘:app:compileDebugJavaWithJavac’.

java.lang.RuntimeException: ARouter::Compiler >>> No module name, for more information, look at gradle log.
在build.gradle中增加javaCompileOptions配置,如下斜体所示:

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.0"
    defaultConfig {
        applicationId "com.example.demo.myapplication"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        *javaCompileOptions {
            annotationProcessorOptions {
                arguments = [moduleName: project.getName()]
            }*
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值