zoukankan      html  css  js  c++  java
  • Android----Gradle

    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.

     rebuild一下

    每个module都会对应着一个gradle,并且会有一个主project的gradle文件管理全局。

    gradle-warpper.properties文件:warpper包装的意思,properties财产,所有权的意思。

    gradle-wrapper:目的在于团队开发过程中统一gradle版本号

    这个文件存在的意义在于:它可以启动gradle内置的Wrapper task帮助我们自动生成wrapper所需的目录结构

    它自动生成的文件是:

    文件中参数介绍:

    实战使用:当导入别人的项目的时候,把自己常用项目的Gradle-wrapper.properties文件替换掉别人的。

    setting.gradle:工程树,项目有多少个moudle,都会在这里显示。还有我们导入的第三方依赖

    groovy语法:咯

    project 的 build.gradle文件:主要四个标签

    buildscript:是用来声明gradle脚本自身需要的资源 { 依赖项dependencies,      第三方插件和maven仓库地址 repositories{ jcenter(),maven(),google()托管第三方插件的平台} }

    ext:用于自定义属性,咯

    allproject:repositories{}这个用于多项目构建,为你所有的module提供第三方库,为所有的项目提供共同的依赖包,在子项目可以配置自己的单独的依赖包,和buildscript有区别,互相没有关系

    task clean:运行gradle clean命令时,执行此处的task,与Androidstudio的clean命令一样,删除build文件

    module的build.gradle文件:

    appley plugin提供插件

    apply  plugin 二进制插件

    apply  from   应用脚本插件

    android{}这个是Android插件提供的一个拓展,让我们自定义AndroidGradle工程

      compliesdkversion 编译所依赖的AndroidSDK 版本

      buildTOOLversion 构建该Android工程所用的构建工具版本

      defaultconfig{}默认设置,这是一个ProdultFlavor,它允许我们根据不同的情况生成不同的app

        ndk{}多平台编译,生成so包的时候使用,包括四个平台armeabi,armeabi-v7a ,x86,mips。使用第三方库提供的sdk的时候,可能会附带so库

        sourcesets,源代码合集是java插件用来管理代码和描述资源的概念,比如告诉gradle关于jin的so包放在了app/libs路径上,让它编译的时候自己去找。

    dependencies{}:

      complie fileTree(include:[".jar"],dir:"libs")* :把本地libs文件夹下的jar包全部导入。

      complie project()引入本地的一个moudle

      complie group:name:version 引入网上仓库的依赖

    导入第三方类包的方法

    导入jar包:copy到lib目录下即可(因为gradle里面的第一句话)

    导入so包:so包应该放在相应模块下的src目录下的main目录下的jinLibs目录(自己新建)

    原理:

    build.gradle中会有一些不会显示的默认配置,比如下面的

     导入第三方java类库含源码包library:

    1.先把从github上下载下来的library解压,把library的文件夹所有复制到工程下边(与主工程app同级,复制到文件、工程都可)可以新建一个exact文件夹专门存放第三方库

    2.项目根目录下settigs.gradle添加:include ':App',':viewpagerindicatorlibrary'    如果是exact目录下  include ':App',': exact:viewpagerindicatorlibrary' 

    3.app/build.gradle的dependencies里边添加:compile project(':viewpagerindicatorlibrary')  如果是exact目录下 同上

    4.打开open Module Settings看到viewpagerindicatorlibrary 已经加入进来

    5.还需在viewpagerindicatorlibrary目录下添加一个build.gradle的文件  跟主的app/build.gradle差不多

    导入arr:aar其实也是一个压缩文件,相比jar文件,它能够含带res资源文件等,aar文件的引入方式有两种:

    1.将.aar文件粘贴到自己项目的libs目录下

    2.修改app/build.grdle配置文件

    添加:repositories flatDir { dirs 'libs' }}

    这个是添加一个本地仓库,并把libs目录作为仓库地址。

    3.dependencies中添加一行:compile(name:'pullrefreshlibrary', ext:'aar')

    导入远程库:咯

  • 相关阅读:
    java基础面试题(一)
    关于Redis的十个高频面试问题
    postgres中的merge join
    cgdb调试postgresql
    再见了,程序员!
    掌握这个小技巧,让你的 C++ 编译速度提升 50 倍!
    C语言修仙大法!基础知识全复习(纯干货)!!!
    一锅端了!北京朝阳一互联网公司被端,警方上门,23人被带走…
    C++入口不是main?知乎上都快打起来了,你们不要再打了啦!
    不用创建项目,直接在 VS 里快速测试 C/C++ 代码 !
  • 原文地址:https://www.cnblogs.com/BlueFire-py/p/9058208.html
Copyright © 2011-2022 走看看