博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio 工程依赖
阅读量:6141 次
发布时间:2019-06-21

本文共 3641 字,大约阅读时间需要 12 分钟。

  hot3.png

(一)添加依赖库项目

现在有两个工程,主工程Module A ,要依赖项目Module B。

1、首先我们确保Module B 依赖库工程,如果是,直接导入即可,如果Module B 是非库工程,则要改为依赖库工程,方法如下:

打开Module B的build.gradle文件,如果是 apply plugin: ‘com.Android.application’,我们要将application改成依赖库的属性 apply plugin: ‘com.android.library’。

作为一个库工程不允许设置applicationId,因此需要将builde.gradle —》 android —》defaultConfig中的applicationId删除;

2、导入过程:选择File ——》Project Structure...,弹出"Project Structure"对话框,选择Module A ,选中 Dependences,点击 ” + “ ,选择”Library dependency“,找到要添加的 Module B,添加即可。

输入图片说明

3、添加成功后,在ModuleA的build.gradle文件中 dependencies标签中多 出新添加的库,格式如下:

compile project(':loadingview.library')

(二)添加第三方jar包

1、将项目结构切换至"Project", 选中项目名称,右击---》New --》 Directory,添加libs文件夹,(若项目已有libs,则无需添加),将jar包拷贝到libs目录下,如图

输入图片说明

2、选中要添加的jar包,右击---》“Add As Library...”,弹出“Create Librarry”对话框,点击“ok”按钮即可

输入图片说明

3、添加成功后,在Module的build.gradle文件中 dependencies标签中多 出新添加的jar包,格式如下:

compile files('libs/ShareSDK-QQ-2.7.10.jar')

(三)添加第三方so库

网上有两种方法可参考

  • 第一种 (测试可行)

1、将so文件拷贝到libs文件加下

输入图片说明

2、在Module的build.gradle文件中添加配置

apply plugin: 'com.android.application'    android {      compileSdkVersion 21      buildToolsVersion "21.1.0"        defaultConfig {          applicationId "com.wujay.footerballstar"          minSdkVersion 8          targetSdkVersion 21          versionCode 1          versionName "1.0"      }        buildTypes {          release {              runProguard false              proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'          }      }        /*********添加so配置   begin***********/    task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {          destinationDir file("$projectDir/libs")          baseName "Native_Libs2"          extension "jar"          from fileTree(dir: "libs", include: "**/*.so")          into "lib"      }        tasks.withType(JavaCompile) {          compileTask -> compileTask.dependsOn(nativeLibsToJar)      }    /*********添加so配置  end***********/}    dependencies {      compile fileTree(dir: 'libs', include: ['*.jar'])      compile 'com.android.support:appcompat-v7:21.0.0'  }
  • 第二种方法(待测)

1、将so文件拷贝到libs文件加下

2、在Module的build.gradle文件中添加配置

android {    compileSdkVersion 23    buildToolsVersion "23.0.2"    defaultConfig {        applicationId "com.lance.ndkexample"        minSdkVersion 14        targetSdkVersion 23        versionCode 1        versionName "1.0"        // 不声明ndk标签,项目默认会创建一个libapp.so的文件        ndk {            // 声明创建so库的文件名,会自动添加lib前缀, 添加了前缀,不会自动添加            moduleName "MathKit"            //声明启用Android日志, 在c/c++的源文件中使用的#include 
日志将得到输出 ldLibs "log" // 声明创建指定cpu架构的so库, 不声明的话, 默认(gradle 1.5.0)会生成4中架构 多一种mips架构 // 具体cpu架构的区别请参考: // for detailed abiFilter descriptions, refer to "Supported ABIs" @ // https://developer.android.com/ndk/guides/abis.html#sa abiFilters "armeabi", "armeabi-v7a", "x86" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { // 1. 配置在根目录libs下可以加载第三方so库, (最好不要创建jniLibs, 在众多的开源库中可能会引起冲突,还没发现) // 2. 运行时会自动将libs目录下的so库拷贝到指定目录 // 3. 如果自己创建的so不需要重新编译,可以将(app/build/intermediates/transforms)生成的so拷贝到这个目录 jniLibs.srcDirs = ['libs'] // 如果是单个文件夹 可以直接这样如下配置 // jniLibs.srcDir 'libs' } }}

3、此外,要再 gradle.properties 文件中添加android.useDeprecatedNdk=true,重新编译工程即可。

备注:

对方法二,如果没有添加ndk标签,就不用第三步,直接在在Module的build.gradle文件中添加如下配置即可

sourceSets {    main {        jniLibs.srcDirs = ['libs']    }}

转载于:https://my.oschina.net/fltsp/blog/900509

你可能感兴趣的文章
ASP.NET Aries 入门开发教程5:自定义列表页工具栏区
查看>>
Rushcrm:如何利用CRM系统的权限设置
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.7 复习题
查看>>
Facebook 开源 Android 调试工具 —— Stetho
查看>>
生活不止有苟且,还有N个免费DevOps开源工具
查看>>
视频直播Android推流SDK初体验
查看>>
第十三天:制定预算
查看>>
java技术团队必须要注意的那几个点
查看>>
Hibernate ORM 5.1.7 发布,数据持久层框架
查看>>
数百万网站因流行 PHP 脚本的安全漏洞而受影响
查看>>
《走进SAP(第2版)》——2.7 SAP对业务流程的支持
查看>>
《C语言解惑》—— 2.9 输出值的操作符
查看>>
Project Volta 让 Android 续航提升了多少?
查看>>
《树莓派实战秘籍》——1.7 技巧07使用过压获得更高的性能
查看>>
《SAS 统计分析与应用从入门到精通(第二版)》一1.4 SAS系统的文件管理
查看>>
《众妙之门——网页设计专业之道》——2.4 总结
查看>>
MySQL sql_mode 说明(及处理一起 sql_mode 引发的问题)
查看>>
Java 注解详解 (annotation)
查看>>
鹰眼跟踪、限流降级,EDAS的微服务解决之道
查看>>
秘籍:程序猿该如何实力撩妹
查看>>