AndroidStudio中Module创建及项目变Module导入其它项目步骤

2023-10-27

因为经常会写各种各样的功能Demo,每次项目中使用都是打开Demo,然后将相应的功能复制粘贴过去,很是麻烦,要是将Demo项目变为module,然后我们项目中导入该module就会便捷很多,因为很少使用module,所以这次就记录下创建module及导入的流程吧。

1、创建module

通过点击File–New Module–Android Library即可创建
在这里插入图片描述

2、添加依赖

点击File–ProjectStructure ,然后点击Dependencies–Modules下的app,然后点击加号添加刚才创建的myLibrary,若找不到刚才创建的myLibrary,则在app下的settings.gradle内加入刚才创建的module

include ':app', ':mylibrary'

完成上述操作后会在app的项目build.gradle里新增该依赖implementation project(path: ':mylibrary')

在这里插入图片描述

3、将已有项目变为module导入到其他项目中

因为经常要为一些功能模块写Demo测试,那如何将我们已有的项目作为module导入其他项目中而不是仅仅将代码复制粘贴过去再重新使用呢?

将已有项目更改

在我们原先项目ModuleDemo内对app下的build.gradle文件进行修改

apply plugin: 'com.android.application'改为apply plugin: 'com.android.library',然后删掉defaultConfig{}内的applicationId "com.example.moduledemo"即可。

将旧项目作为module导入

新建项目AnotherModuleDemo,然后点击File–New–Import Module来添加我们刚才更改过的项目ModuleDemo,注意选择的时候是选择ModuleDemo项目目录下的app文件夹

在这里插入图片描述
在这里插入图片描述

添加时系统会提醒你要更改module的名字,因为我们新建项目的模块名字为app,所以导入那个项目module要更改名字。可以看到,我们原先项目中依赖的modulemylibrary也会被导入进来。导入完成后可以看到项目中已经导入了这两个module。然后就是添加依赖了,和上面的第2步骤一样添加进来即可。

在这里插入图片描述
在这里插入图片描述

4、遇到的一些问题

添加module时显示Unable to resolve dependency for

  • 先看module中的代码是否正确,不报错才行
  • 可能创建的module格式有问题,应该创建module时选择Android Library而不是PhoneModule
  • 在该module下的build.gradle文件里应该将apply plugin: 'com.android.application'更改为apply plugin : 'com.android.library',在defaultConfig里注释掉applicationId "..."
  • 运行项目时提示merge Manifest冲突,解决方法是将以下Application中的内容清除掉即可,因为它与主App模块的manifest冲突了

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.DynamicForm"
        tools:targetApi="31">
    

总结

总体还是简单的,因为只是写了个Demo测试下,正常项目中还会遇到module中添加依赖是使用implementation还是api方式等问题,会有哪些问题需要注意,日后项目中遇到再来补充。

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

AndroidStudio中Module创建及项目变Module导入其它项目步骤 的相关文章

  • StrictMode 策略违规:我的应用程序中存在 android.os.strictmode.LeakedClosableViolation?

    Android 开发新手 第一次在我的应用程序上尝试 StrictMode 我注意到以下内容 并想知道这是否是我的应用程序或库中的问题 我不太清楚 谢谢你 D StrictMode StrictMode policy violation a
  • Sqlite数据库生命周期?关闭应用程序后它会被删除吗?

    我正在遵循一个简单的教程 该教程创建一个从 SQLiteOpenHelper 扩展的类 并创建一个包含一个表和 5 行的数据库 好的 但我需要更多地了解 android Sqlite 数据库 例如 如果应用程序关闭或手机关机会发生什么 数据
  • SearchView过滤ListView

    我已经实现了搜索视图来过滤我的列表视图项目 当我输入任何文本时 它会过滤列表 但当我退出搜索视图时 它不会返回原始列表项 public class PlacesListAdapter extends ArrayAdapter
  • 找不到 com.google.firebase:firebase-core:9.0.0 [重复]

    这个问题在这里已经有答案了 在遵循有些不一致的指示之后here https firebase google com docs admob android quick start name your project and here http
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 无法访问 com.google.android.gms.internal.zzbfm 的 zzbfm 类文件未找到

    我正在将我的 Android 应用程序项目从GCM to FCM 为此 我使用 Android Studio 中的 Firebase 助手工具 并遵循 Google 开发人员指南中的说明 一切都很顺利 并将我的应用程序代码更改为FCM根据助
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • Android向menuItem添加子菜单,addSubMenu()在哪里?

    我想根据我的参数以编程方式将 OptionsMenu 内的子菜单添加到 menuItem 中 我检查了android sdk中的 MenuItem 没有addSubMenu 方法 尽管你可以找到 hasSubMenu 和 getSubMen
  • 如何根据 gradle 风格设置变量

    我想传递一个变量test我为每种风格设置了不同的值作为 NDK 的定义 但出于某种原因 他总是忽略了最后味道的价值 这是 build gradle apply plugin com android library def test andr
  • Android:膨胀布局时出现 StackOverFlowError 和 InvokingTargetException

    首先 对不起我的英语 我在膨胀布局时有一个问题 我有一个自定义视图 从 LinearLayout 扩展而来 称为按钮帮助 我在名为的布局上使用该视图加载活动 我的以下代码在所有设备和模拟器上都能完美运行 但具有 QVGA 屏幕 例如 Sam
  • 一次显示两条Toast消息?

    我希望在一个位置显示一条 Toast 消息 并在另一位置同时显示另一条 Toast 消息 多个 Toast 消息似乎总是按顺序排队和显示 是否可以同时显示两条消息 是否有一种解决方法至少可以提供这种外观并且不涉及扰乱活动布局 Edit 看来
  • 实现滚动选择 ListView 中的项目

    我想使用 ListView 您可以在其中滚动列表来选择一个项目 它应该像一个 Seekbar 但拇指应该是固定的 并且您必须使用该栏来调整它 我面临的一个问题是 我不知道这种小部件是如何调用的 这使得我很难搜索 所以我制作了下面这张图片 以
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • JavaScript基础:Iterator概念及用法

    一 由来及意义 Javascript中表示 集合 的数据结构 主要是 Array Object Map Set 这四种数据集合 除此之外 它们相互之间还可以组合使用 例如Array的成员是Map Map的成员是Object等 因此Javas
  • 一分钟学会gitee上传文件到仓库

    在网上Gitee准备 1 1 注册登录 gitee 1 2 在gitee上创建仓库 点击gitee头像旁边的 选择 新建仓库 1 3 开始新建 然后点击 创建 仓库名称 最好都用英文 这里方便讲解就不勾选后面的内容了 接着直接点击 创建 就
  • Python迭代器

    迭代器是在Python2 2中被加入的 它为类序列对象提供了一个类序列的接口 有了迭代器可以迭代一个不是序列的对象 因为它表现出了序列的行为 关于Python中的迭代器 有几个比较容易混淆的概念 可迭代对象 iterable 迭代器 ite
  • 《服务器无状态设计:为什么&如何实现无状态API?》

    博主猫头虎 带您 Go to New World 博客首页 猫头虎的博客 面试题大全专栏 文章图文并茂 生动形象 简单易学 欢迎大家来踩踩 IDEA开发秘籍专栏 学会IDEA常用操作 工作效率翻倍 100天精通Golang 基础入门篇 学会
  • python3 多线程_Python3多线程及线程池实现教程

    一 说明 多线程这个东西 感觉一直以来都是用一次就要学一次 今天需要将之前写的脚本改成线程池的形式又学习了一轮 为了以后方便在这直接记下来 二 多线程实现 2 1 多线程的基本实现 importthreadingimporttimeimpo
  • 编写程序,根据用户输入的两位数,反向显示出该数中的数字。例如,用户输入48,那么程序输出84。(C语言)

    include
  • Linux开机满进度条卡死问题

    Linux开机满进度条卡死问题 此问题意外发生 原本好好的 再次开机就发现启动时进度条很慢 最后满条卡住 但ssh方式连接还能进去 也就是开机了 但linux界面卡住了 页面如下 但我们使用xshell进行ssh链接还是可以用的 但进度条卡
  • Ubuntu---pycharm卸载

    Ubuntu卸载pycharm 1 在 Linux 上卸载 snap 包 在商店中直接下载 专业版 sudo snap remove pycharm professional 社区版 sudo snap remove pycharm com
  • tomcat能作为网站的服务器不,tomcat的作用是什么_网站服务器运行维护,tomcat

    Linux 如何查看root密码 网站服务器运行维护 Linux不能查看root密码 因为root密码都是密文存储的 而密码设计的一个目标就是反推解密出来的可能性尽量小 如果需要修改密码 可以通过进入单用户模式下 将密码进行修改 修改完成后
  • SlideLive:提供小清新风格PPT模板下载

    简介 在学习和工作中 有时需要制作PPT 本文主要介绍如何从SlideLive平台下载小清新风格PPT模板 其中 SlideLive是一款PPT在线播放和分享的网站 该网站已收录大量的PPT模板 包括各种风格PPT模板和PPT图表 下载地址
  • 4款不错的UI设计软件推荐

    俗话说 如果工人想做好工作 他们必须首先磨利他们的工具 高质量的UI设计软件将使设计事半功倍 近年来 UI设计软件的逐渐多样化 让一些需要使用UI设计软件的小伙伴不知道如何选择 我整理了四款优秀的免费UI设计软件 别错过了 1 即时设计 即
  • 在子组件中使用Echarts图表无法刷新显示的问题(解决:子组件刷新)

    场景问题 在项目中 子组件中使用了Echarts的图表 图表的数据需要从父组件传入Id来进行查询 墒情仪与气象站相同的结构 当切换设备时 图表无法回显 父子组件传值正常 解决心路历程 1 我将两种设备传值的Id分开传递 处理无果 2 给子组
  • Linux下操作Docker(四):导入导出

    docker镜像的导出和导入 显示当前docker中的镜像 docker images 镜像列表如下 REPOSITORY TAG IMAGE ID CREATED SIZE pointsift latest 90b2ef439b40 2
  • java循环判断的使用

    程序的结构 一般来说程序的结构包含有下面三种 1 顺序结构 2 选择结构 3 循环结构 顺序结构 程序至上而下逐行执行 一条语句执行完之后继续执行下一条语句一直到程序的末尾 选择结构 是根据条件的成立与否 再决定要执行哪些语句的一种结构 循
  • 原生js实现简单智能关键词搜索功能

    现在很多网站都有智能搜索功能 它能根据用户的输入自动提示出需要补全的数据 方便用户的查询 下面我们用JavaScript来简单实现它 html部分 div div
  • STM32学习笔记3:KEIL5中使用ST-Link烧录调试STM32芯片的步骤

    一 开发板连接ST LINK ST LINK连接电脑 操作细节点击这里 二 配置debug选项 点击魔术棒 debug use 项选择 ST Link Debugger 再点击 Setting 这边会显示设备信息 如果显示没有设备 需要检查
  • 数字电路设计之OpenRISC(一)

    ARM PowerPC等商用IP核授权费价格较高 所以开源处理器越来越受到大家的关注 开源处理器比如OpenRISC NIOS II LEON2等 这里我会介绍OpenRISC的优点 一 指令集可扩展 二 添加专用的硬件协处理单元 一般来说
  • Kettle(一) 下载及环境部署

    1 kettle下载地址 kettle资源 https download csdn net download kingo0 87360222 JDK资源 LinuxJDK1 8安装包 jdk1 8安装包 Java文档类资源 CSDN下载 2
  • oracle 触发器 for each row 理解

    看到了触发器 中有个 for each row 不是很明白就查了查资料 因为只是简单研究 就先写总结一下 触发器的一般语法 CREATE OR REPLACE TIGGER 触发器名 触发时间 触发事件 ON 表名 FOR EACH ROW
  • AndroidStudio中Module创建及项目变Module导入其它项目步骤

    AndroidStudio中Module创建及项目变Module导入其它项目步骤记录 1 创建module 2 添加依赖 3 将已有项目变为module导入到其他项目中 将已有项目更改 将旧项目作为module导入 4 遇到的一些问题 总结