• gradle android


    从github下载两个开源项目:

    PagerSlidingTabStrip    |    Android-Universal-Image-Loader-master

    https://github.com/astuetz/PagerSlidingTabStrip

     https://github.com/nostra13/Android-Universal-Image-Loader

    下文说的Project等同于eclipse中的workspace,Module等同于eclipse中的project

    先说导入PagerSlidingTabStrip:

    文件列表的两个Modul,一个library,一个sample。如果是eclipse的话直接选中这两个modul导入就可以了。

    如果使用Android Studio,则可以分两种方式导入。看第一张图结构,一些gradle文件说明了这个Project可以整个导入,导入后文件根目录就是工作空间的名词,里面两个modle,sample和library。当然如果我已经有了工作空间,只需要导入sample和library,就是下文说的第二种方式了。然后看第二张图,很明显它不能做为一个Project整个导入,它没有gradle构建项目的配置文件,所以你必须有一个Project,然后通过下文的第二种方式导入。

    第一种方式:

    先看下导入成功的结构

    下载完项目先不要急着导入,按下文操作修改一些gradle相关文件后再导入,特别是下文说的第二个需要修改的文件,如果本地没有这个配置的包,导入时会花很长时间去下这个包,但是一般我们在安装studio的时候就已经有了。

    这里从第一步开始导入并解决这些错误。

    打开你的文本编辑器,修改配置文件。

    第一个文件:PagerSlidingTabStrip-masteruild.gradle

    1. dependencies {  
    2.         classpath 'com.android.tools.build:gradle:0.6.+'  
    3.     }  

    0.6+,改成你的版本。如果你不知道该改成啥,最简单的方式是你新建一个project,找到这个文件看这个值是多少。

    更改后:

    1. dependencies {  
    2.         classpath 'com.android.tools.build:gradle:1.0.0'  
    3.     }  

    第二个文件:D:PagerSlidingTabStrip-mastergradlewrappergradle-wrapper.properties

    1. distributionUrl=http://services.gradle.org/distributions/gradle-1.8-all.zip  

    gradle-1.8.all.zip,改成你的版本。如上,如果不知道你可以新建一个project,去找。

    我的android studio版本是1.0.1,gradle文件路径在android studio的安装目录下

    D:Program FilesAndroidAndroid Studiogradlegradle-2.2.1

    更改后:

    1. <pre name="code" class="plain">distributionUrl=http://services.gradle.org/distributions/gradle-2.2.1-all.zip  
    
    
    

    第三个文件:

    D:PagerSlidingTabStrip-mastergradle.properties

    1. ANDROID_BUILD_TARGET_SDK_VERSION=19  
    2. ANDROID_BUILD_TOOLS_VERSION=19  
    3. ANDROID_BUILD_SDK_VERSION=19  


    对应改成你的版本

    更改后:

    1. ANDROID_BUILD_TARGET_SDK_VERSION=21  
    2. ANDROID_BUILD_TOOLS_VERSION=21.1.2  
    3. ANDROID_BUILD_SDK_VERSION=21  

    (如果你的项目这个文件没有上面配置,则不用管。)

    第四个文件:

    D:PagerSlidingTabStrip-masterlibraryuild.gradle

    1. apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'  


    注释掉这句代码:

    更改后:

    1. //apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'  

    (如果你的项目这个文件没有上面配置,则不用管。)

    其他文件:

    D:PagerSlidingTabStrip-masterlibraryproject.properties和D:PagerSlidingTabStrip-mastersampleproject.properties

    1. target=android-17  

    指定你的sdk版本,我的sdk没有这个版本,我没有修改这个文件,结果编译通过可以运行。有没有觉得很不可思议?其实之前已经指定了。

    看文件 D:PagerSlidingTabStrip-mastergradle.properties

    1. ANDROID_BUILD_TARGET_SDK_VERSION=21  
    2. ANDROID_BUILD_TOOLS_VERSION=21.1.2  
    3. ANDROID_BUILD_SDK_VERSION=21  


    Yes,就是这里了。

    看文件 D:PagerSlidingTabStrip-mastersampleuild.gradle和D:PagerSlidingTabStrip-masterlibraryuild.gradle

    1. android {  
    2.     compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)  
    3.     buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION  
    4.   
    5.     defaultConfig {  
    6.         minSdkVersion 8  
    7.         targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)  
    8.   
    9.         versionName project.SAMPLE_VERSION_NAME  
    10.         versionCode Integer.parseInt(project.SAMPLE_VERSION_CODE)  
    11.     }  

    各自已经引用了,minSdkVersion=8,我们也可以全局去指定,然后引用。

    配置:ANDROID_BUILD_MIN_SDK_VERSION=14

    引用:

    1. minSdkVersion project.ANDROID_BUILD_MIN_SDK_VERSION  

    这四个文件改完后就可以直接导入整个工程了

    File-import project-PagerSlidingTabStrip-master(根目录)

    成功导入后的结构图上面已经给出。

    如果有错点击

    第二种方式:

    如果已经有Project,只想导入sample和libray这两个项目到Project。

    step1:

    File > Import Project

    step2:

    step3:

    step4

    (PS.我已经导入了,所以这个Finish不可点击)

    导入完后的工作目录项目不见了,切换显示方式就有了,点击Project

    工程出来了,看message gradle message报错信息

    看完第一种方式,这里能明白是怎么回事了。

    在gradle.properties配置上sdk的值,因为sample和library中的gradle.properties中都有引用。

    1. ANDROID_BUILD_MIN_SDK_VERSION=14  
    2. ANDROID_BUILD_TARGET_SDK_VERSION=21  
    3. ANDROID_BUILD_TOOLS_VERSION=21.1.2  
    4. ANDROID_BUILD_SDK_VERSION=21  

    然后不要忘了注释掉

    libray中build.gradle中的一句代码:

    1. apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'  

    然后同步gradle文件,点击这个按钮

    结果还是报错,其实和上面一样。

    知道是什么原因了,就不要一个个改了,直接去PagerSlidingTabStrip-mastergradle.properties源文件中把这些配置copy过来一次搞定。

    1. VERSION_NAME=1.0.1  
    2. GROUP=com.astuetz  
    3.   
    4. SAMPLE_VERSION_NAME=1.0.2  
    5. SAMPLE_VERSION_CODE=3  

    然后同步gradle(PS:这个时候我也不清楚可以编译否)

    oh,编译通过,也可以运行,结构如下。

    PagerSlidingTabStrip这个github的开源控件的两种导入方式说完。

    另外一个Android-Universal-Image-Loader-master

    看根目录结构就知道,需要用第二中方式去导入。

    看smple和library的目录结构:

    sample导入可以正常识别,记得导入之前修改build.gradle文件。

    library识别不了。原因在于build.gradle这个文件。

    直接copy到library目录下,并修改

    apply plugin: 'com.android.application'

    改为:

    apply plugin: 'android-library' 或者 apply plugin: 'com.android.library' 

    这样就可以正常导入了。

    但是新的问题又来了

    如何在sample中引用library这个项目?

    先把sample中libs中的universal-image-loader-1.9.4-SNAPSHOT.jar这个包删掉

    点击sync gradle message后工程很明显会报错。

    开始引入library,如图操作:

    点击Mehule dependency后会弹出一个窗口,选中library即可。sync gradle message,工程就不会报错了。

    如何将libray打包成jar文件? 如何在项目中导入这个jar文件?

    下篇文章继续。

  • 相关阅读:
    RramSim2
    DiskSim
    FTL2
    Durable NAND flash memory management
    node系列:全局与本地
    CSS系列:less备忘
    Sql Server 2008:调试
    JavaScript系列:再巩固-原型链
    移动端 :meta标签1万个作用
    Asp.Net:Repeater 详情 备用
  • 原文地址:https://www.cnblogs.com/ArRan/p/4836957.html
Copyright © 2020-2023  润新知