繁体   English   中英

如何通过Gradle / Android Studio中的外部库项目修改导入的模块并修改代码

[英]How to update imported modules with code modification from the their external library project in Gradle/Android Studio

我正在开发一个Android应用程序,我最近从Eclipse迁移到Android Studio和Gradle。

在我的预测中,我创建了5个UI Libs,并将它们作为模块添加到我的项目中,我创建的库被推送到我的github帐户(公开)。

在eclipse中为标记为lib的项目添加外部依赖项时,当您更新外部项目的代码然后清理构建时,您的项目会获得这些更新,但在Gradle中我注意到它创建了物理副本,完全独立于其源,我的问题是如何只更改外部库并更新我的项目。

这是从我的gradle的配置剪切:

dependencies {
    // Libraries
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.gms:play-services:5.0.89'
    .
    .
    . 
    compile 'com.squareup.picasso:picasso:2.4.0'

    // Projects
    compile project(':com.shehabic.helpicon')
    .
    .
}

如何实际使用外部库

我读过这是不推荐的,但它对调试很实用:

  1. 文件>项目结构...> PLUS标志添加模块

  2. “创建新模块”对话框:

    • 选择“导入.JAR / .AAR包”
    • 查找并选择您的包,但在继续之前复制路径
    • 为您的包裹命名
  3. 返回“项目结构”对话框:

    • 出现“正在进行Gradle项目同步...”消息,但是单击“确定”以使构建实际启动。 相反,您可以继续使用依赖项。
    • 选择“app”模块,转到DEPENDENCIES选项卡,然后选择加号以添加MODULE DEPENDENCY
    • 选择你的模块
    • 单击“确定”以运行构建。

这确实会在您的android项目中创建一个包的副本,但它也会生成所有必要的信息和文件,您可以随时删除副本或不管它。

您的模块已添加到settings.gradle文件中:

':app', ':module_name'

已创建模块的build.gradle文件:

configurations.maybeCreate("default")
artifacts.add("default", file('package.jar'))

并且依赖项已添加到“:app”的build.gradle中:

compile project(':module_name')
  1. 现在,访问添加的模块的build.gradle文件并粘贴您复制的路径:

configurations.maybeCreate("default") artifacts.add("default", file('X:\\Java\\Applications\\YourApplication\\dist\\package.jar'))

无论您在哪里编辑包,只需“清理并构建”它。 每当您希望您的应用程序从Android项目外部反映包中的“更新”时,只需同步即可。 完成调试后,可以删除模块,依赖项和旧副本,并将包的最后一个版本作为副本添加。

您不能将外部库添加为模块。 它将在项目文件夹下复制它。

你要做的是:

1)删除当前项目中的库文件夹。 2)打开'seeting.gradle'文件并添加以下内容:

include ':your_external_library_module_name', ':perhaps_second_external_library'

project (':your_external_library_module_name').projectDir = new File('../path/to/your/external/library')
project (':perhaps_second_external_library').projectDir = new File('../path/to/your/second/external/library')

2)在'build.gradle'文件中添加依赖关系:

dependencies {
    compile project(':your_external_library_module_name')
    compile project(':perhaps_second_external_library')
}

3)同步项目,你就完成了。

请勿使用Studio的“打开模块设置”添加模块。

只需在子应用程序的构建gradle中添加库的AAR文件的完整路径:

实现文件('/ workspace / AndroidAppsBase / base_app / build / outputs / aar / base_app-debug.aar')

当您对库项目进行更改并重建项目时,将创建一个新的.aar文件。 要反映子项目中的更改,只需重建它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM