android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

2023-11-07

1、什么是Module Library

android  将项目  分成   project 和 Module

module  其实也是一个项目   他里面也有  res  、 java 、 AndroidManifiest等文件  其实也是一个可以独立运行的项目 

只是   build.gradle中  标记了是library类型的


而 project是   

apply plugin: 'com.android.application'





2、module library 导入到自己项目中的意义

如果是将  一个外部的module library想导入到当前的工程作为   library  作为一个,  可以看作是与当前项目的  合并  ,在主项目中可以 直接使用  module library项目中的资源文件等。 总之就等效于  将module library项目中的文件复制到了主项目的对应文件夹中了。

必须明白上面这一点,  这也是  ModuleLibrary  存在的意义

3、将module library 导入到自己项目

1)如果是android studio  的module Library   那么可以直接导入。

注意:但是 由于module Library 使用的gradle版本和当前项目的gradle不一样,那么android studio就会去电脑中找是否有对应的gradle ,如果 没有那么他就去网上下载,但是服务器在国外,国内下载很慢,所以在导入前可以修改一下版。改为自己对应已有的版本。

查看 gradle 的版本    打开当前项目的文件中的gradle文件

用记事本打开上面的 文件看最后一句

https\://services.gradle.org/distributions/gradle-2.8-all.zip  说明版本是 2.8

然后打开要导入的module library的  对应的gradle-wrapper.properties   将版本改为2.8  这样可以导入快一点。    

其实从网上下载下来的项目  用自己的android studio 打开前  也可以这么做,这样打开的也会快一点。

2)如果是  android  studio 的项目 或者 eclipse的项目  或者eclipse的library项目导入到当前的项目作为  module library那么 步骤如下

(1)新建一个library形式的module,删掉这个module中src/main目录里面的所有文件(包括删掉java、res、AndroidManifest.xml)

(2)复制第三方库的AndroidMainfest.xml、res、src文件(夹)到库目录的src/main目录中

(3)将src/main目录下的src目录重命名(Shift+F6)为java

(4)删除库module中的build.gradle文件(注意不要修改错了地方)中的dependencies和release模块(这一步可以不做)

注意:除了上面三个文件  还有 libs  、assest等等文件对应复制就可以了

  如果libs 文件中有.so文件(就是jni)   ,android studio 是将jar包和.so文件分开放的,jar包还放在libs中,so文件放在jniLibs中   两种解决方法

方法1、 新建一个 在src/main文件中新建 jniLibs文件夹,将.so文件都拷贝进去

方法2、.so文件还是放在libs中但是,要告诉android studio去哪里找.so文件

		修改当前module的build.gradle文件。
		sourceSets {
			 main {
				 jniLibs.srcDirs = ['libs']
				}
			}

以上两种方法 结果都是一样的效果一样。

在工程中可以看到多出了jniLibs的文件夹如图


总结:其实.so文件一般都是一些驱动硬件的程序  ,运行起来都是在如下的路径中

   运行到手机中的时候 这些.so文件     既不是在libs中也不是在jniLibs中,以上两个都是开发时候看见的路径,实际打包成apk的时候是在lib 文件夹中。

这是监控打印的路径    System.out:      so文件的路径::::/data/data/项目名称/lib/XXX.so 

所以放在哪里都一样,这要最终android  studio 可以找得到并且打包到apk 的 lib中就可以了!

4、将 module library 添加给当前的项目


完成了!


写的不太好只有自己能够看得懂,就当是笔记!




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android studio 将已有的项目 以module Library的 形式引入到 自己的项目中 的相关文章

随机推荐

  • 手把手教你用 NebulaGraph AI 全家桶跑图算法

    前段时间 NebulaGraph 3 5 0 发布 whitewum 吴老师建议我把前段时间 NebulaGraph 社区里开启的新项目 ng ai 公开给大家 所以 就有了这个系列文章 本文是该系列的开篇之作 ng ai 是什么 ng a
  • Java中Scanner类中next与nextLine的区别

    1 next的意思是接受文字 有效文字 next不接收空格回车以及Tab 当你输入空格回车Tab的时候接收就会终止 并不会存入到String 变量中去 特别的情况 当在输入的时候先输入了几个空格然后再输入String中内容得时候String
  • C++ 程序文档生成器介绍(doxygen)

    http ly4cn cnblogs com archive 2005 11 23 282637 html 程序文档 曾经是程序员的一个头痛问题 写一个程序文档 比较花时间 但不是很难 麻烦的是当程序修改后 程序文档也要跟着同步更新 否则文
  • Python 练习实例11:兔子的规律为数列1,1,2,3,5,8,13,21

    古典问题 有一对兔子 从出生后第3个月起每个月都生一对兔子 小兔子长到第三个月后每个月又生一对兔子 假如兔子都不死 问每个月的兔子总数为多少 程序分析 兔子的规律为数列1 1 2 3 5 8 13 21 程序代码 def f n if n
  • 傅里叶变换、短时傅里叶变换、小波变换

    顺序 傅里叶 gt 短时傅里叶变换 gt 小波变换的顺序 转载自形象易懂的傅里叶变换 短时傅里叶变换和小波变换本文作者按照傅里叶 短时傅里叶变换 小波变换的顺序 由浅到深的解释小波变换的缘由以及思路 https mp weixin qq c
  • VMware中安装Kali一步解决(7z格式)

    VMware中安装Kali一步解决 7z格式 首先搜索Kali 进入官网找到VMware版本 选择第一个就好了 进去之后 根据自己的电脑选择就好 有64位和32位 点击torrent会生成种子 下载好种子之后 使用迅雷下载就好了 下载完成之
  • 十一.linux多线程同步之互斥锁、信号量、条件量

    笔记 https note youdao com ynoteshare1 index html id 1b529d966d34b16f3bdd828be48364e4 type note 目录 一 线程同步之信号量 1 任务 用户从终端输入
  • leetcode链表之反转链表

    本文主要有三道题 都是关于反转链表的算法题 由浅入深 文章出现的代码都是python3 206 反转链表 题目 给你单链表的头节点 head 请你反转链表 并返回反转后的链表 示例1 输入 head 1 2 3 4 5 输出 5 4 3 2
  • 基于MATLAB GUI的数字滤波仿真平台设计

    基于MATLAB GUI的数字滤波仿真平台设计 一 平台介绍 二 设计原理 1 登陆系统设计原理 2 IIR数字滤波器设计 3 FIR数字滤波器设计 三 程序实现 1 用户登陆系统程序 2 IIR DF设计 3 FIR DF设计 4 FDA
  • Pyinstaller打包exe附带图片的方法

    2019 10 27更新 在最近的wordpress项目中学到了图片字节码可在文件中存在 于是我做了试验并成功了 就是代码里带一堆字节码 参考 https blog csdn net jss19940414 article details
  • vue 路由守卫

    vue router 提供的导航守卫主要用来通过或取消的方式来守卫导航 有多种机会植入路由导航的过程 主要分为全局导航 单个路由导航 组件导航 所谓路由导航我们可以这么理解 导航守卫就相当于保安的意思 你要进入这个房子 保安需要知道你是 t
  • Suse Linux 磁盘动态扩容

    1 背景 Suse Linux本身非常少见 在实际项目中用过最多的是CentOs和RedHat版本的Linux Linux各个发行版只是微小差异 命令基本上一样 有一个数仓的测试环境中 总磁盘大小为1T 根目录 挂载了300G 剩下的600
  • 【图论】【最短路】城市问题

    Description 设有n个城市 依次编号为0 1 2 n 1 n lt 100 另外有一个文件保存n个城市之间的距离 每座城市之间的距离都小于等于1000 当两城市之间的距离等于 1时 表示这两个城市没有直接连接 求指定城市k到每一个
  • 【Python VTK】之 TVTK安装

    前言 需安装完 VTK numpy traits mayavi pyqt4 才能使用 VTVK 下载 whl 时候 需注意 python的版本号 和 自身电脑的位数 1 下载 下载链接 凡凡的环境是 python 3 6 window 64
  • 《自动驾驶算法工程师课程》

    B站看到一个不错的教程 可以对这个领域有一个大致的了解 自动驾驶算法工程师课程 https www bilibili com video BV1dL411j7f6 自动驾驶技术算法 https www bilibili com video
  • Flink之水位线(Watermark)

    在流数据处理应用中 一个很重要 也很常见的操作就是窗口计算 所谓的 窗口 一般就是划定的一段时间范围 也就是 时间窗 对在这范围内的数据进行处理 就是所谓的窗口计算 所以窗口和时间往往是分不开的 接下来我们就深入了解一下 Flink 中的时
  • 20220129---CTF刷题---WEB--代码审计

    20220129 CTF刷题 WEB 代码审计 刷题网站 世界攻防 https adworld xctf org cn WEB方向 新手区第5题 一道简单的代码审计题 首先通过get方法传参 a要转化成数字是0 但是不能直接传0 否则 a就
  • Dynamics 365 UI Controls 用Calendar View来查看数据

    Dynamics 365 在升级到new UI之后 支持一种calendar 形式来查看view数据 今天我们来说一下怎么在一个特定的view上来实现用calendar查看 1 首先进入Customization页面 找到你想开启Calen
  • redis中api理解与使用(二)

    4 列表 list 列表类型是用来存储多个有序的字符串 可以重复 一个列表最多存储2 32 1个元素 redis中可以对列表两端插入和弹出 还可以获取指定范围的元素列表 获取指定索引下标的元素等 4 1 常用命令 操作类型 操作 添加 rp
  • android studio 将已有的项目 以module Library的 形式引入到 自己的项目中

    1 什么是Module Library android 将项目 分成 project 和 Module module 其实也是一个项目 他里面也有 res java AndroidManifiest等文件 其实也是一个可以独立运行的项目 只