问题
I want to add a native (integration test) module to a Cordova Android project.
For fully native projects, you just add a new module, commit and be done with it. But for Cordova I of course don't really want to mess with the generated Android project as some of these changes might be lost on build etc.
I got a Poof of Concept of the module working manually by having the module folder outside of the Cordova Android folder and adding this to settings.gradle
:
include ':module-androidTest'
project(':module-androidTest').projectDir = new File("../module-tests")
But of course line 1 of that file already says
// GENERATED FILE - DO NOT EDIT
Is there any other way to add additional modules to a Cordova Android project?
Some approaches I researched or thought about:
Can I somehow do this with
build-extras.gradle
? (I don't think so assettings.gradle
is several steps before build-extras andbuild.gradle
, right?)Older StackOverflow questions suggest manually editing a
GradleBuilder.js
file: https://stackoverflow.com/a/35504783/252627 But of course this would get lost each time I completely generate a new Cordova project. Not a good idea, correct?Can I maybe work around this somehow via a Cordova plugin? I know these can load frameworks etc - maybe also a module somehow?
回答1:
I think what you are looking for can be done using a custom plugin which can extend the base gradle config using a framework tag like this:
<framework src="relative/path/to/your/gradlefile/*.gradle" custom="true" type="gradleReference" />
This is how a cordova-android project is usually extended.
来源:https://stackoverflow.com/questions/46554949/how-to-add-native-module-to-cordova-android-project