如何手动将Gradle模块添加到Android项目?

4

我正在处理一个在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中添加它。 - Enzokie
1个回答

6

我曾手动完成这个任务,而且实际上我已经为数百个书籍样例应用程序完成了此任务

您列出了以下步骤:

  • 创建模块的新文件夹(这里我将其称为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
2
@The_Martian:基本上,您要放入版本控制的所有内容都可以。明显的候选项包括您的Java代码、资源、清单和资产。如果您正在使用NDK,则需要移动您的JNI代码,并且您可能需要用CMake文件替换经典的makefiles。但是,如果您正在使用某些主要框架(Unity3D、PhoneGap等),答案可能会有很大不同,您需要寻找更适合此类项目的说明。 - CommonsWare
感谢您的及时回复。目前我没有本地代码。我将所有Java文件添加到app/src/main/java中,并在build.gradle中引用它们。但是,所有Java文件都有红色圆圈,我无法在我的设备上运行该项目。没有抛出任何异常,也看不到AS中的任何错误。您有什么线索吗? - The_Martian
@The_Martian:我不知道你所说的“无法在我的设备上运行项目”的意思。你可能需要在Stack Overflow上提出一个单独的问题,其中包括[mcve],展示你的Gradle脚本、项目结构和更详细的症状。 - CommonsWare
我刚刚提了一个新问题,这是链接 https://stackoverflow.com/questions/47688113/imported-project-unable-to-run-in-android-studio - The_Martian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接