Skip to content

Commit 96eed30

Browse files
committed
resolve merge conflict
2 parents 1b3881a + 22c575f commit 96eed30

File tree

4 files changed

+56
-18
lines changed

4 files changed

+56
-18
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
3.1.1
2+
==
3+
4+
## Bug Fixes
5+
- [APKS with ABI split crash on start up (#785)](https://github.com/NativeScript/android-runtime/issues/785)
6+
17
3.1.0
28
==
39

build-artifacts/project-template-gradle/build.gradle

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,27 @@ android {
171171
}
172172

173173
compileSourcesTask.finalizedBy(buildMetadata)
174+
175+
// forces packaging of resources and assets AFTER producing metadata
176+
// Reference: https://github.com/NativeScript/android-runtime/issues/785
177+
178+
// Ensure metadata has been built and copied in assets before packaging
179+
variant.outputs.each { output ->
180+
def abiName = "";
181+
if (output.getFilter(com.android.build.OutputFile.ABI)) {
182+
abiName = output.getFilter(com.android.build.OutputFile.ABI)
183+
def packageTask = project.tasks.findByName("package${output.name}")
184+
if (packageTask) {
185+
packageTask.dependsOn(buildMetadata)
186+
}
187+
}
188+
}
189+
190+
// Compile the Java sources AFTER the Java code-generation step is done
191+
def compileTask = project.tasks.findByName("compile${variantName}JavaWithJavac")
192+
if (compileTask) {
193+
compileTask.dependsOn("asbg:generateBindings")
194+
}
174195
}
175196
}
176197

@@ -413,13 +434,11 @@ task createDefaultIncludeFiles {
413434
if (hasChildrenDirs) {
414435
file.listFiles().each { subFile ->
415436
if (subFile.isDirectory()) {
416-
flavorNumber++
417-
createIncludeGradleForPlugin(subFile, flavorNumber, flavorNames)
437+
createIncludeGradleForPlugin(subFile, flavorNumber++, flavorNames)
418438
}
419439
}
420440
} else {
421-
flavorNumber++
422-
createIncludeGradleForPlugin(file, flavorNumber, flavorNames)
441+
createIncludeGradleForPlugin(file, flavorNumber++, flavorNames)
423442
}
424443
}
425444
}
@@ -730,6 +749,7 @@ setProperties.finalizedBy("asbg:generateBindings", generateTypescriptDefinitions
730749
// 5. plugin extend (apply from include files)
731750

732751
// --execution phase
752+
733753
ensureMetadataOutDir.dependsOn(cleanLocalAarFiles)
734754
collectAllJars.dependsOn(ensureMetadataOutDir)
735755
buildMetadata.dependsOn(collectAllJars)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "tns-android",
33
"description": "NativeScript Runtime for Android",
4-
"version": "3.1.0",
4+
"version": "3.2.0",
55
"files": [
66
"**/*"
77
]
Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,30 @@
11
describe("Runtime exposes", function () {
22
it("__time a low overhead, high resolution, time in ms.", function() {
3-
var dateTimeStart = Date.now();
4-
var timeStart = __time();
5-
var acc = 0;
6-
var s = android.os.SystemClock.elapsedRealtime();
7-
for (var i = 0; i < 1000; i++) {
8-
var c = android.os.SystemClock.elapsedRealtime();
9-
acc += (c - s);
10-
s = c;
3+
// Try to get the times using Date.now and __time and compare the results, expect them to be somewhat "close".
4+
// Sometimes GC hits after Date.now is captured but before __time or the vice-versa and the test fails,
5+
// so we are giving it several attempts.
6+
for(var i = 0; i < 5; i++) {
7+
try {
8+
var dateTimeStart = Date.now();
9+
var timeStart = __time();
10+
var acc = 0;
11+
var s = android.os.SystemClock.elapsedRealtime();
12+
for (var i = 0; i < 1000; i++) {
13+
var c = android.os.SystemClock.elapsedRealtime();
14+
acc += (c - s);
15+
s = c;
16+
}
17+
var dateTimeEnd = Date.now();
18+
var timeEnd = __time();
19+
var dateDelta = dateTimeEnd - dateTimeStart;
20+
var timeDelta = timeEnd - timeStart;
21+
expect(Math.abs(dateDelta - timeDelta) < dateDelta * 0.25).toBe(true);
22+
break;
23+
} catch(e) {
24+
if (i == 4) {
25+
throw e;
26+
}
27+
}
1128
}
12-
var dateTimeEnd = Date.now();
13-
var timeEnd = __time();
14-
var dateDelta = dateTimeEnd - dateTimeStart;
15-
var timeDelta = timeEnd - timeStart;
16-
expect(Math.abs(dateDelta - timeDelta) < dateDelta * 0.25).toBe(true);
1729
});
1830
});

0 commit comments

Comments
 (0)