【问题标题】:How to manually add Gradle module to Android project?如何手动将 Gradle 模块添加到 Android 项目?
【发布时间】:2017-02-04 13:45:14
【问题描述】:

我正在研究一个在 Gradle 成为 Android 开发构建系统之前创建的项目(LibreOffice Viewer for Android)。当项目迁移到 Gradle 时,它​​没有将文件夹结构重新组织为 Android 正在使用的新文件夹结构,因此 Gradle 配置具有以下内容:

        main.manifest.srcFile 'AndroidManifest.xml'
        main.assets.srcDirs = ['assets']
        main.res.srcDirs = ['res']
        main.java.srcDirs = ['../Bootstrap/src', 'src/java']
        main.jniLibs.srcDirs = ['jniLibs']

在项目根目录下的build.gradle 文件中,而“通常”的 Gradle 项目在项目根目录下有一个文件,在每个模块中都有一个文件。

我的问题是,为模块创建一个新文件夹并在其中创建一个新的build.gradle 文件(然后移动适当的文件等)是否足够?这是手动添加新模块的“正确”方式,还是我必须在其他地方“声明”该模块才能正常工作并被 Android Studio 识别?

【问题讨论】:

  • 假设您使用的是 A.S.,您还需要将其添加到 settings.gradle

标签: android gradle android-gradle-plugin build.gradle


【解决方案1】:

绝对可以手动执行此操作,就像我为 hundreds of book sample apps 所做的那样。

您列出了这些步骤:

  • 为模块创建一个新文件夹(这里我叫它app
  • 在其中创建一个新的build.gradle 文件
  • 移动相应的文件

您还需要:

  • 将您的模块添加到settings.gradle,根据需要创建该文件(或从现有 Android Studio 项目中复制它)

  • 让您的 app/build.gradle 正确反映移动文件的位置,其中可能包括删除 main.assets.srcDirs 之类的内容,如果您的文件现在都在标准位置(就像您在新的 -创建 Android Studio 项目)

  • 添加一个新的项目级 build.gradle 文件,可能只是从一些标准 Android Studio 项目中复制而来的

就 Android Studio 本身而言,我强烈建议在 Studio 之外进行这个项目重组。然后,删除生成的 Studio 项目(所有.iml 文件、.idea/ 子目录、build/ 目录),最后将项目重新导入 Studio。

【讨论】:

  • 您能否详细说明“适当的文件”?对于第一次这样做的人,如果您不介意提供更多详细信息,将会非常有帮助。
  • @The_Martian:基本上,无论您要在版本控制中添加什么。显而易见的候选对象是您的 Java 代码、资源、清单和资产。如果您使用的是 NDK,则需要移动您的 JNI 代码,并且您可能需要用 CMake 替换经典的 makefile。但如果您使用一些主要框架(Unity3D、PhoneGap 等),答案可能会有很大不同,您需要寻找更适合此类项目的说明。
  • 感谢您的及时回复。我现在没有本机代码。我在 app/src/main/java 中添加了所有 java 文件,并在 build.gradle 中引用了它们。但是所有 Java 文件上都有红色圆圈,我无法在我的设备上运行该项目。没有抛出异常,我也看不到来自 AS 的任何错误。你有什么线索吗?
  • @The_Martian:我不知道您所说的“无法在我的设备上运行项目”是什么意思。您可能想问一个单独的 Stack Overflow 问题,在其中提供 minimal reproducible example,显示您的 Gradle 脚本、项目结构和更详细的症状。
  • 我刚刚问了一个新问题,这里有一个链接stackoverflow.com/questions/47688113/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 2022-10-15
  • 2022-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多