Skip to content

Commit 6571553

Browse files
authored
Merge pull request #177 from chenenyu/dev
try to fix build error in empty manifest
2 parents 17465fe + 2da800d commit 6571553

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

gradle-plugin/src/main/groovy/com/chenenyu/router/ManifestTransformer.groovy

+17-7
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,22 @@ import org.gradle.api.Project
55

66
class ManifestTransformer {
77
static void transform(Project project, File input, File output) {
8-
Node xml = new XmlParser().parse(input)
9-
Node applicationNode = xml.get('application')[0]
10-
applicationNode.appendNode('meta-data', ['android:name': project.name, 'android:value': 'com.chenenyu.router.moduleName'])
11-
FileWriter fileWriter = new FileWriter(output)
12-
XmlNodePrinter nodePrinter = new XmlNodePrinter(new PrintWriter(fileWriter))
13-
nodePrinter.setPreserveWhitespace(true)
14-
nodePrinter.print(xml)
8+
Node manifest = new XmlParser().parse(input)
9+
Node applicationNode = null
10+
Object application = manifest.get('application')
11+
if (application instanceof NodeList) {
12+
if (application.isEmpty()) { // There is no `application` node in AndroidManifest.xml
13+
applicationNode = manifest.appendNode("application", ['xmlns:android': 'http://schemas.android.com/apk/res/android'])
14+
} else {
15+
applicationNode = application.first()
16+
}
17+
applicationNode.appendNode('meta-data', ['android:name': project.name, 'android:value': 'com.chenenyu.router.moduleName'])
18+
}
19+
if (applicationNode != null) {
20+
FileWriter fileWriter = new FileWriter(output)
21+
XmlNodePrinter nodePrinter = new XmlNodePrinter(new PrintWriter(fileWriter))
22+
nodePrinter.setPreserveWhitespace(true)
23+
nodePrinter.print(manifest)
24+
}
1525
}
1626
}

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ android.useAndroidX=true
1616
# apply router plugin
1717
applyRemotePlugin=false
1818
# router gradle plugin version
19-
PLUGIN_VERSION=1.8.1
19+
PLUGIN_VERSION=1.8.2
2020
# router library version
2121
ROUTER_VERSION=1.8.0
2222
# compiler library version

0 commit comments

Comments
 (0)