在Cordova项目中,我有一个文件settings.gradle,它看起来像:
// GENERATED FILE - DO NOT EDIT
include ":"
include ":CordovaLib"
然而,手动我想编辑文件并使其看起来像:
// GENERATED FILE - DO NOT EDIT
include ":"
include ":CordovaLib"
include 'manager-A'
project(':manager-A').projectDir = new File('libs/Manager-A')
include 'manager-B'
project(':manager-B').projectDir = new File('libs/Manager-B')
上面的脚本看起来不错,可以使用Android studio成功构建。但是,当我尝试执行命令行:cordova build android时,它无法构建。
错误是' manager-A'和'经理-B'我手动包含的内容无法通过命令行找到。检查后,结果发现我手动编辑的文件已重新生成,并变为:
// GENERATED FILE - DO NOT EDIT
include ":"
include ":CordovaLib"
我想询问是否可以手动编辑文件,并且可以使用命令行构建,如上所述:cordova build android。
非常感谢任何输入!
答案 0 :(得分:3)
是的,我正在寻求解决同样的问题,并从npm cordova-blinkup-plugin's Page找到了以下解决方案。您可以使用as:
编辑设置
1.打开路径/到/ project / platforms / android / cordova / lib / build.js
2.编辑fs.writeFileSync()
功能(第273行):
// Write the settings.gradle file.
fs.writeFileSync(path.join(projectPath, 'settings.gradle'),
'// GENERATED FILE - DO NOT EDIT\n' +
'include ":"\n' + settingsGradlePaths.join('') +
'include ":customProject1" +
'include ":customProject2"');
我希望这会有所帮助。
更新,如另一个答案所示,在较新版本的Cordova中,您可能会获得文件 /path/to/project/platforms/android/cordova/lib/builders/GradleBuilder.js
答案 1 :(得分:0)
我找到了一种在setting.gradle
文件中添加自定义包含的更好方法。
制作文件project.properties
并添加以下行:
target=android-22
android.library.reference.1=CordovaLib
android.library.reference.2=manager-A
android.library.reference.3=manager-B
现在运行cordova build android
。这将在您的setting.gradle
文件中输入。
这回答了如何包含模块的部分问题。但是如何添加如下的库仍需要更好的方法:
project(':manager-A').projectDir = new File('libs/Manager-A')
可以通过修改build.js来完成(Sopheak Mongkul建议)。我不推荐,但在你得到更好的解决方案之前它是好的。
答案 2 :(得分:0)
@ ankibalyan答案的更新: 我在 path / to / project / platforms / android / cordova / lib / builders / GradleBuilder.js 中找到了该函数,以防万一有人再需要它:)