- [FR] Customize metadata generation to avoid adding unnecessary unused JS wrappers (#1485)
- Provide verbose metadata filtering output (#1583)
- Upgrade v8 to 8.0.426.16 (#1579)
- Upgrade android gradle plugin to the latest 3.5.3 version (#1564)
- Using Android KTX is causing NativeScript app to crash (#1571)
- SBG generating conflicting class definitions (#1569)
- WebAssembly won't initialize without the debugger (#1558)
- Clean up allocations from finalized object links (#1566)
- Fix Kotlin Object issue (#1562)
- Kotlin enum values not visible at runtime (#1560)
- Code cache breaks HMR (#1554)
- Worker memory leak in android (#1550)
- Upgrade v8 to 7.8.279.19 (#1526)
- Restrict Kotlin internal modifier from metadata (#1551)
- Restrict Kotlin properties with non-public type (#1552)
- Add Kotlin extension functions support (#1515)
- update dts generator to the latest version (#1506)
- Unify exceptions information in try/catch and __onUncaughtError (#1445)
- Interop between JS Objects and JSONObjects (#1500)
- Collect build analytics (#1501)
- expose the NDK revision used to build the V8 and the Runtime (#1498)
- Upgrade android gradle plugin to the latest 3.5.1 version (#1502)
- support snapshot libs out of the box (#1496)
- Upgrade v8 to 7.7.299.11 (#1478)
- Console.log in worker makes chrome debugging crash (#1511)
- fix searching for merge assets folder on windows (#1503)
- Background job with WorkManager (#1488)
- Deprecated API used in the ErrorActivity is crashing the app (when latest support library is used) (#1494)
- Runtime Binding Generator depends on deprecated APIs #1441)
- The runtime depends on accessing a hidden value field (#1458)
- Upgrade v8 to 7.6.303.28 (#1439)
- Unify JS stack trace when exception is thrown #1443
- Update androidSdk, targetSdk and build tools to 29 (#1452)
- Upgrade android gradle plugin to the latest 3.5.0 version (#1456)
- Add initial Kotlin support (#1459)
- Add support for user defined gradle.properties (#1463)
- Arabic and Kurdish characters show as gibberish in console.log() (#1302)
- IntentService extending fails at runtime when service is started (#1426)
- SBG may fail when parsing big JS files (#1430)
- Upgrade android gradle plugin to the latest 3.4.2 version (#1425)
-
Exception information in onDiscarderError and onUnhandledError is changed so that
message
contains the exception message andstackTrace
contains only the stackTrace. In the previous implementationstackTrace
contained some additional details (including the exception message) and themessage
was something like:The application crashed because of an uncaught exception. You can look at "stackTrace" or "nativeException" for more detailed information about the exception.
-
The built-in
JSON.stringify
method is used for cross workers communication. Circular object references are no longer supported and attempting to send such object will throw an exception.
- Use the built-in JSON.stringify for cross workers communication (#1411)
- Enable AndroidX and Jetifier(#1370)
- Upgrade v8 to 7.5.288.22(#1387)
- Upgrade android gradle plugin to the latest 3.4.1 version(#1390)
- Remove printStackTrace method calls from the source code(#1359)
- Improve package.json parsing in SBG (#1407)
- Improve error message in SBG class parsing (#1401)
- java.lang.NullPointerException in Metadata generator(#13795)
- Buffer() is deprecated(#1392)
- Warnings when building android(#1396)
- No JS stack on discardedError and unhandledError(#1354)
- Upgrade v8 to 7.4.288.25(#1356)
- Upgrade the android gradle plugin to the latest 3.4.0 version(#1360)
- Enable V8 symbols using from application's package.json file(#1368)
- HashMaps improvements - fix for "Attempt to use cleared object reference"(#1345)
- Unable to start Service when the application process is killed by the OS(#1347)
- gradlew not compatible with sh(#1349)
- Memory leak in global.postMessage(#1358)
- memory leak java <-> javascript when java returns [] array(#1363)
- Bug when reifying some generic classes in the SBG(#1372)
- Extending an Android service fails if
onCreate
hasn't been overridden()
- 5.3 build failing (Android) (#1329)
- fix(build): Correct dependencies of
cleanupAllJars
gradle task (#1338)
- Upgrade v8 to 7.3.492.25(#1301)
- Upgrade the android gradle plugin to the latest 3.3.2 version(#1304)
- Fail SBG when there's no sbg-bindings.txt file generated(#1286)
- Enable arm64-v8 in app.gradle(#1284)
- Support external buildscript configurations(#1279)
- Refactor SBG to support generics and proper handling of overridable methods(#1322)
- The minSdk version should not be declared in the android manifest file(#1316)
- "Unable to resolve dependency" error when runtime is not build (#1309)
- App crashes after tns debug android --debug-brk and trying to debug with "Step into/over"(#892)
- Unable to call plugin's native code if application has been build before adding the plugin(#1293)
- Android build fails when tns-core-modules is updated(#1257)
- Generate better code(#689)
- Upgrade v8 to 7.1.302.32(#1237)
- Add OnDiscardedError handler(#1245)
- Upgrade the android gradle plugin to the latest 3.3.1 version(#1251)
- Add android X support(#1226)
- Provide a JS helper function on the global object to release the native object wrapped by a JS instance(#1254)
- ClassNotFound exception when calling nested static class with correct argument(#1195)
- If you refresh or close the chrome dev tools window an error will be log in the console (#1202)
- Debug on Android fails when stopped on breakpoint and change in .xml/.css/.html is applied(#1243)
- Upgrade V8 to v7 to fix unstable sort() method(#1176)
- CodeCache option is broken since Android Runtime 4.1.0(#1235)
- Snapshots with ABI splits do not work since Android Runtime 4.1.0(#1234)
- Add a setting to wrap calls to CallJSMethod in try catch(#1223)
- Support for abstract interface with static methods(#1157)
- Use gradle plugin 3.2.1 instead of 3.2.0(#1209)
- Add a concrete exception when the runtime cannot be found(#1201)
- Upgrade v8 to 6.9.427.23(#1168)
- Added support for before-plugins.gradle file applied before plugin(#1183)
- Make JSParser in SBG fail the build when failing(#1152)
- Generate interface names list in SBG in parallel(#1132)
- Upgrade android gradle plugin to 3.2.0(#1147)
- Static Binding Generator fails if class has static properties that are used within the class(#1160)
- Fixing NoClassDefFoundError when using older API(#1164)
- Upgrade v8 to 6.7.288.46(#1130)
- Static binding generator now uses bundled npm packages(#1096)
- Add gradle dependencies versions in package.json(#1102)
- Introduce a setting for auto catching exceptions when calling JS method native(#1119)
- Make livesync work entirely through named sockets(#932)
- Unable to increase minSdk version by modifying AndroidManifest.xml(#1104)
- UTF8 symbols in inspector protocol are not properly encoded(#1116)
- ChromeDevTools: If you close the socket the app will crash on the device/emulator(#1122)
- App tries to write in /data/local/tmp(#828)
- Rewrite livesync implementation(#929)
- Use google repository as primary gradle repository
- Add support for java.nio.HeapByteBuffer to ArrayBuffer conversion(#1060)
- Upgrade Gradle version (wrapper and plugin) to latest(#1054)
- Accessing Native Packages starting with 'in'(#1046)
- tns-android 4.0.1: undefined objects are dumped with console.log making the log unreadable(#1026)
- Support new gradle dependency configuration(#993)
- new Date() does not work as expected after time zone change(#961)
- Update V8 to latest stable version(#808)
- Checking if java class implements java interface(#739)
- How to disable console.logs in release builds(#1024)
- Calling java method with incorrect params crashes with a JNI exception (#844)
- Chrome DevTools: App crashes after adding new view element(#1051)
- Extraneous classes generated by SBG are not cleaned on rebuild(#904)
- Source files have different roots, while using debug command(896)
- Rewrite the build script routine to no longer use flavors as the primary mechanism to apply nativescript plugin Android configurations (#890) - If you see the
All flavors must now belong to a named flavor dimension.
build error, ensure that you are using the latest CLI. Plugins will be built implicitly by the CLI, version 4.0.0-rc or newer. - Application package outputs are now located at
platforms/android/app/build/outputs/<build-type>/<flavor - if any>/app-<build-type>.apk
(#938)
- Respect
.jar
and.aar
libraries fromApp_Resources/Android/libs
(#899) - Add user-defined Android project files -
.java
, resources, assets inApp_Resources/Android
(#700) - Enabled after updating the App_Resources/Android subdirectory structure. Usetns resources update android
with CLI 4.0.0-rc or newer. - Console API improvements - file name, line, column support in Chrome DevTools; Objects are expanded to JSON representations (#894) (#884) - Replaces the console API in the
tns-core-modules
. - Update Gradle to 4.1 and Android plugin for Gradle to 3.0.1 (#938)
- Want help to access webview document height and cookies (#5243)
- Question about plugin using native lib NS 3.4 (#5254)
- Provide better error message while parsing js files (#833)
- Improve JavaScript Metadata generation (#832)
- Improve Error handling incorrectly implementing Java interface (#836)
- --debug-brk flag not working (#2741)
- Clean app between different versions of application package. Ensure Android 6's AutoBackup feature doesn't restore files for NS apps
- Chrome DevTools Network Domain (#715)
- Chrome DevTools Scope Tab (#713)
- Enabling java source code or direct dex generation #663)
- Improve Gradle incremental build (#562)
- Can't use npm packages ending with ".js" (#666)
- Static binding generator crash build-time: clazz is null causes app to crash (#665)
- Decorators aren't respected when extending classes with TypeScript 2.1.4+ (#651)
- Samples SDK app crashes (#632)
- Missing stack trace on worker errors (#629)
- Classes using fields from compileSdk > Platform Sdk on device cause crash when extended in TS (#626)
- A failure building in debug and release in series (#649)
- Update the V8 JavaScript Engine to 5.2.361 (97% ES6 support)
- [Experimental] Generate typings for android.jar and android support libs (--androidTypings) (#605)
- [Experimental] Multithreading support enabled with Web Workers API (#532)
- Enable enableProguardInReleaseBuilds in build.gradle (#567)
- Optimized default apk size (#529)
- Improved debug Error Activity (#293)
- Build for armv7 and x86 only by default (#614)
- Make javascript parsing during build incremental (#572)
- App won't launch on Android 22 device (#592)
- Metadata isn't created for generated dex files (#552)
- App doesn't load with the new custom Application\Activity support (#546)
- Extend is not working as previous versions in all cases. (#514)
- JS: Binding: Run-time error occured in file: undefined at line: undefined and column: undefined (#443)
- Crash when invoking a second (different) signature of an overloaded method (meta generator cache?) (#555)
- App crashes when set undefined to reference type field (#306)
- App crash (#476)
- The static binding generator should clean redundant files (#467)
- Android builds fail on nativescript 2.0 (#460)
- Need to add a Gradle Android.defaultConfig (#454)
- Android N early developer preview (#378)
- [Proposal] Static binding generator specification. (#363)
- Android Runtime Support for older Android versions (#357)
- Data Marshalling: Support for typed arrays (#65)
- Support Android Widgets
- Add support for caching already compiled JS code
- Additional Intents Crashes app
- Enable Multidex support
- Wrong object lifecycle management (#382)
- CLI can easily fail and blow project up on windows when you have multiple plugins. (#369)
- Provide method implementations for partially implemented interfaces. (#259)
- Generate metadata for protected interfaces (#236)
- Cannot resolve method/constructor signatures when null is passed (#90)
- App seems to load up with a white screen on run, but works in debug mode #397
- Extendind Application and Activity classes
- Gradle script improvements
- Build common test infrastructure for Android and iOS
- New syntax for Java arrays
- Improved debugger
- Log in the debugger console
- Update documentation
- Provide support for ARMv8a
- Imroved exception handling
- Gradle script improvements
- Fix app crash during debugging (#270)
- Fix app hang during array marshalling
- Fix incorrect module resolution
- Fix app crash during debugging (#338)
- Enable requiring of JSON files (like in Node) (#217)
- Revisit the "assert" routine in the JNI part (#221)
- Android CallStack (#228)
- error handling introducing c++ exceptions (#277)
- Simplify require errors (#287)
- Experimental: Support native modules (#291)
- Gradle script improvements
- Improved LiveSync
- Improved error handling
- Use Gradle Wrapper
- Use V8 code cache (experimental)
- Proper handling of HTTP 401 status code
- Generate metadata for protected interfaces
- Fix loading module with NULL char in it
- Generated metadata is not updated after initial build until after 'gradle clean' is called (#227)
- Incorrect behavior when getting or setting java fields from javascript (#219)
- Better handling of package.json main configuration (#190)
- Calling non existen ctor crashesh the runtime (#180)
- ClassCastException when tries to convert numeric return value of overridden methods (#139)
- Expose public API for NativeScript Companion App for deleting old *.dex files (#187)
- Add support for AppBuilder LiveSync (#186)
- Create a new template project for Gradle build (#182)
- Support ~ path syntax in require (#177)
- Enable using the Google Design library (and alike) with "library add" command (#140)
- Implement support for CLI live sync feature (#137)
- Ahead-of-time generation of binding proxies (#103)
- Use pool of arrays for marshalling (#33)
- Run after LiveSync starts the last synced app on the device/emulator (#214)
- Cannot load module with relative path on Android 6 (#206)
- App crashes when call overloaded method of a base class (#203)
- Fix file is external to application error on Android M (#185)
- App crash during GC (#184)
- JNI reference leaks when passing JavaScript arrays (#167)
- ArrayBuffer broken (#164)
- ClassCastException when tries to convert numeric return value of overridden methods (#139)
- Allow debugger reconnects (#136)
- __onUncaughtError is not called. (#108)
- Updated android widgets library
- Allow verbose logging system property to enable debug messages early in engine bootstrap
- Additional null checks in V8 to handle certain possible garbage collection issues
- Fix sync support in runtime for specific (Samsung) Android devices where run-as is not working
- Fix JNI memory leak
- Fix copy of correct android.jar referenced in project properties
- Support http cookies in build-in http client (#159)
- Implement support for CLI live sync feature (#137)
- Rethink 0 day support for new android versions (#86)
- Fix ErrorActivity not displayed on uncaught exceptions (#158)
- Fix JNI memory leak when resolving classes in metadata reader (#157)
- Application crash with JNI ERROR (app bug): local reference table overflow (max=512) (#149)
- Cannot set float field (#148)
- IndexedPropertySetter not called (#127)
- Fix GetDbgPort intent (#117)
- Recreating an Activity with fragments on same process crashes the runtime (#96)
- Grunt tasks fail on Windows (#61)
- Optimize Strings marshaling between Java and V8 (#160)
- Improve required module loading (#156)
- Improve JNI String marshalling (#126)
- Cache folder-as-module resolved path (#121)
- Implemented #58 to remove the 3-seconds initial timeout for Debug builds.
- Implemented #118 to replace the MultiDex library with DexClassLoader.
- Started #103 AOT proxy generation to improve startup time and to enable new scenarios like BroadcastReceivers, BackgroundServices and arbitrary Activity types declared in the manifest.
- #63. An issue which prevented users to extend overloaded methods.
- #64. A JNI Crash when calling JS method with char.
- #113. Fixes the extend routine for an Activity.
- #114. Removes the redundant setNativeScriptOverrides method.
- Updated the V8 version to 4.1.0.27.
- Re-implemented debugger support (no more spontaneous dead locks).
- An issue with the error reporting routine.
- Renamed global functions:
__log
(wasLog
)__debugbreak
(waswaitForDebugger
)__enableVerboseLogging
(wasenableVerboseLogging
)__disableVerboseLogging
(wasdisableVerboseLogging
)__exit
(wasfail
)
- Added Dynamic Generator for binding proxies. This boosts the initial loading time, especially on Android 5.0+ devices.
- Added several optimization techniques, which further optimize the loading time and the overall performance.
- Improved the error reporting mechanism for Debug builds.
- Added support for package.json and index.js for bootstrapping an application.
- Removed the simulated property-like support for Android types. E.g. the
android.content.Intent.getAction()
previously was accessible likeandroid.content.Intent.Action
. This is no longer valid as it contradicts with the Android APIs. - Changed the way
extend
constructs work
// WRONG
var handler = new android.os.Handler.extend({...})();
// CORRECT
var handlerType = android.os.Handler.extend({...});
var handler = new handlerType();
- The directory structure in the
assets
folder has changed. Thetns_modules
directory is now within theassets/app
one. To migrate older CLI projects to the new structure simply move the content of the inner app folder one level up:
####Previous structure:
|--app
|--|--app
|--|--|--bootstrap.js
|--|--|--myFile.js
|--|--tns_modules
####New structure:
|--app
|--|--bootstrap.js
|--|--myFile.js
|--|--tns_modules