apptracer_flutter_android 0.1.1
apptracer_flutter_android: ^0.1.1 copied to clipboard
Android implementation of apptracer_flutter, the unofficial Flutter integration with Tracer (apptracer.ru). Forwards Dart errors to the ru.ok.tracer Android SDK.
Changelog #
All notable changes to this package are documented here.
The format follows Keep a Changelog,
and this package adheres to Semantic Versioning.
While the version is below 1.0.0, a breaking change bumps the minor version,
as pub.flutter-io.cn expects.
Unreleased #
0.1.1 - 2026-08-30 #
Changed #
-
The Kotlin Gradle Plugin is now applied only under AGP 8 and older, so an application no longer gets Flutter's "plugins that apply Kotlin Gradle Plugin (KGP)" warning because of this package. Under AGP 9 the Android plugin compiles Kotlin itself (Built-in Kotlin) and a library subproject applying KGP is what future Flutter releases will fail on. The plugin is applied through
pluginManager.applyrather thanapply plugin:, because flutter_tools reads the text ofandroid/build.gradleand would otherwise keep reporting this package as unmigrated from a branch that never runs on AGP 9. The Kotlin JVM target is set through whichever DSL the toolchain offers, sinceandroid.kotlinOptionsno longer exists under Built-in Kotlin.The minimum Flutter version is unchanged: the alternative — dropping KGP outright, as the migration guide suggests — works only from Flutter 3.44, which is where flutter_tools began applying KGP for plugins that declare none.
Verified in an application on Flutter 3.44.9 with AGP 9.1.1, Kotlin 2.3.20 and
android.builtInKotlin=false: this package is gone from the warning's list, the build succeeds, and the plugin's classes still come out at JVM target 1.8. Not verified underandroid.builtInKotlin=true, which no plugin can pass on Flutter 3.44.x: that version applies KGP to every plugin subproject that does not declare one, migrated or not.
0.1.0 - 2026-08-28 #
Added #
-
ru.apptracer.flutter.TracerApplication, anApplicationthat turns on the non-fatal rate limit. Every Dart error this package reports is a non-fatal, and the SDK's hard default is 8 of them per session, so an application that writes no configuration of its own loses errors silently. Naming this class in the manifest replaces writing one by hand; it cannot be a package default, because the SDK reads configuration from theApplicationobject and a plugin is not one. Built throughCrashReportConfiguration.Builderrather than the SDK's inlinebuild {}, which is compiled for JVM target 11 and would impose that on every consumer. -
Initial release.
-
Forwards Dart errors to
ru.ok.tracer:tracer-crash-reportas a syntheticThrowablewhose stack frames are the Dart frames, so Tracer groups by the Dart call site rather than by the identical JNI frames. -
Maps breadcrumbs onto
TracerCrashReport.logand custom keys ontoTracer.setCustomProperty. -
Detects a missing Tracer SDK or a missing
ru.ok.tracerGradle plugin and reports "disabled" with an actionable message instead of crashing. -
The Tracer SDK is a
compileOnlydependency: this package never pins a vendor SDK version into a host build and redistributes nothing.
Changed #
- The non-fatal rate limit is now applied by the package itself, so an
integration no longer has to name
ru.apptracer.flutter.TracerApplicationin its manifest.TracerAutoConfigProvider, aContentProviderordered ahead of the SDK's own byandroid:initOrder, writes the configuration intoTracer.runtimeConfigsbeforeTracer.initreads it;Tracer.initkeeps what it finds there unless theApplicationimplementsHasTracerConfiguration, which preserves the precedence an application expects. Verified on a device: a defaultApplicationnow gets a token bucket of 10 per hour instead of the SDK's one-shot 8, and the example's ownApplicationstill overrides it. Costs one call into a non-public SDK setter, which fails as a caughtNoSuchMethodErrorif a future version removes it — seeTracerAutoConfig. TracerApplicationis now optional, and carries the same list throughTracerAutoConfig.defaultConfigurations(). It stays for applications with anApplicationof their own, whose configuration replaces the package's.
Fixed #
- The README promised two runtime warnings where the plugin emits four: it also
reports a
TracerOptions.appTokenand aTracerOptions.environmentthat were passed but are ignored on Android.