下面的脚本100%能用,只要你的版本和路径配置正确

环境:Eclipse Windows 7

Gradle:2.3

Android项目里面包含了多个Library

主项目配置:


settings.gradle 文件配置library库

include 'lib_01'include 'lib_02'project(':lib_01').projectDir = new File('D:\\pj1')project(':lib_02').projectDir = new File('D:\\pj2')

库名称对应库的项目路径,当然如果和主项目在一起可以用相对路径

build.gradle 内容


buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:1.1.2'    }}apply plugin: 'com.android.application'android {    compileSdkVersion 18    buildToolsVersion "19.1.0"        lintOptions {       abortOnError false    }            sourceSets {        main {            manifest.srcFile 'AndroidManifest.xml'            java.srcDirs = ['src']            resources.srcDirs = ['src']            res.srcDirs = ['res']            assets.srcDirs = ['assets']        }    }signingConfigs {        release {            storeFile file("D:\\my.keystore")            storePassword "112233"            keyAlias "test"            keyPassword "112233"        }    }    buildTypes {        release {            signingConfig signingConfigs.release    minifyEnabled true            proguardFile 'proguard.txt'        }    }        }dependencies {   compile files('libs/ftp4j-1.7.2.jar','libs/mymap.jar')   compile project(':lib_01')   compile project(':lib_02')}


混淆的路径也要对.一般都是在主项目下配置proguard.txt 但文件里面不需要再添加 --libraryjars这个东西,否则会报你引用了jar 2次 twice


compile project对应编译的是上面的2个library 库


2个依赖库也需要一个build.gradle,每个依赖library项目下 需要一个build.gradle。

内容:

buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle:1.1.2'    }}apply plugin: 'android-library'android {    compileSdkVersion 18    buildToolsVersion "19.1.0"    defaultConfig {        minSdkVersion 14        targetSdkVersion 19    }    sourceSets {        main {            manifest.srcFile 'AndroidManifest.xml'            jniLibs.srcDirs = ['libs']            java.srcDirs = ['src']            resources.srcDirs = ['src']            aidl.srcDirs = ['src']            renderscript.srcDirs = ['src']            res.srcDirs = ['res']            assets.srcDirs = ['assets']        }    }        }

项目打包的时候 先是找到依赖库进行处理生成依赖的 aar ,APK出来的文件都在build/output目录里面. jniLibs.srcDirs 是用来处理so模块文件的。

注意: 默认的情况下 子项目中AndroidManifest.xml 文件中不要有 Activity. 如果有请去掉(这个地方没有去研究 怎样避免多个manifest的问题)


依赖文件中应该是空空的。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="my.mobile.package01" >    <uses-sdk        android:minSdkVersion="9"        android:targetSdkVersion="19" />    <application        android:allowBackup="true"        android:icon="@drawable/app_icon"        >    </application></manifest>


下载的gradle先配置好环境变量
在主项目中

执行 gradle tasks

执行 gradle build

Gradle虽然方便,但Gradle有版本不兼容问题,而且需要下载相关库和jar文件,只需要不断尝试,去http://stackoverflow.com/上面一般都能知道找到答案。



更多相关文章

  1. 如何将当前布局用代码保存在png图像文件中?
  2. android学习笔记(一) 遍历SD卡中所有文件并在listview中显示
  3. Android(安卓)studio打包生成apk
  4. Android(安卓)Studio中无法找到android.os.SystemProperties解决
  5. 解决S5pv210 adb push u-boot.bin /system 的失败问题
  6. Android从ftp服务器获取文件
  7. eclipse中绑定android源码
  8. android 按钮圆角
  9. android中的资源使用

随机推荐

  1. 原创 | 详解SVM模型——核函数是怎么回事
  2. 使用Scala写了个简单的Scheme解释器
  3. Solar RRL:二维杂化钙钛矿的合成、性能和
  4. 现在使用控件, 更喜欢继承
  5. 4.13 在vSphere环境中创建不同类型的文件
  6. 各种IT职业的英文翻译
  7. 写了一个字符串的二维表: TSta
  8. UI 自动化测试在有赞的实践
  9. 覆盖、再覆盖
  10. rsync daemon模式实战