热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

从AndroidStudio中的外部项目链接模块

如何解决《从AndroidStudio中的外部项目链接模块》经验,为你挑选了1个好方法。

我正在将我的所有项目从Eclipse迁移到Android Studio(1.0.2,只是昨天下载)但是有外部模块的问题.

在Eclipse中,我有这样的工作空间

在此输入图像描述

所有活动,片段,模型和类都在"核心"项目中.Core项目需要一些库来运作(例如Google Play服务,Facebook或Twitter),而App 1,App 2,App 3等只是标签应用程序.这些应用程序不包含除图标,配置文件,加载图像等外的任何内容.

我设法将"Core"应用程序及其所有依赖项导入Android Studio作为新项目.当我构建核心时,我得到0个错误和0个警告

在此输入图像描述

然后,我创建新的项目调用"测试"并通过从该问题中选择的答案链接"核心"项目

如何跨多个项目共享单个库源

测试项目的setting.gradle

include ':Test'
include '..:..:AppyCore:Core'

测试项目的build.gradle

dependencies {
    compile 'com.android.support:support-v4:+'
    compile project('..:..:AppyCore:Core')
}

但是,当我重建项目时,我收到了这个错误

Error:(41, 0) Project with path ':SlidingMenu' could not be found in project '..:..:AppyCore:Core'

当我双击错误消息时,IDE会显示Core项目的build.gradle并突出显示文件的依赖项部分,如下所示

在此输入图像描述

似乎当我尝试构建"测试"项目时,它无法找到"核心"项目的所有依赖项.你知道怎么解决这个问题吗?

注意

我相信"核心"项目设置已经是正确的,因为我确实创建了"测试2"应用程序并将"核心"项目导入同一个根目录,同一个项目.它没有任何问题.但这不是一个选项,因为我实际上有大约20多个白标应用程序.如果每个应用程序都拥有自己的"核心",那么逐个更新将非常困难.

我认为我包含的目录是正确的,否则,我会得到这个错误

"错误:找不到名称'default'的配置."

(我试图故意放错目录并得到同样的错误)



1> Kai..:

您正在尝试为每个应用程序版本创建一个新项目,并将它们链接到一个公共代码库.在这种情况下,使用Gradle的"变体"功能要好得多.有了它,每个应用程序都是核心应用程序的"变体",拥有自己的包名,自己的资源文件,甚至是自己的src文件.

为此,您需要:

    修改核心应用的build.gradle:

    android {
      productFlavors {
        // default BuildConfig variables
        all {
        }
        app_1 {
            applicationId 'com.yourcompany.app_1' //package name
            def variantName='app_1' //name of the variant
        }
        app_2 {
            applicationId 'com.yourcompany.app_2' //package name
            def variantName='app_2' //name of the variant
        }
      }
    }
    

    / src中创建app_1,app_2 ... app_x文件夹,每个文件夹都有自己的AndroidManifest.xml,/ src/ res文件夹.

    在Android Studio中更改当前变体: 在此输入图像描述

您可以在Android工具项目网站上找到有关构建变体的更多信息.

我可以亲自担保这种方法,因为我已经使用过这样一个Android Studio项目支持构建几十个变种,每个变种都有自己独特的包名,资源文件和自定义代码,可以显着修改基础的某些方面应用程序,一直共享一个共同的基本代码.


推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了一个题目的解法,通过二分答案来解决问题,但困难在于如何进行检查。文章提供了一种逃逸方式,通过移动最慢的宿管来锁门时跑到更居中的位置,从而使所有合格的寝室都居中。文章还提到可以分开判断两边的情况,并使用前缀和的方式来求出在任意时刻能够到达宿管即将锁门的寝室的人数。最后,文章提到可以改成O(n)的直接枚举来解决问题。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
author-avatar
VW旻shi只吃货8453
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有