PngNote is a free, open-source, handwriting note-taking app based on BOOX SDK.

Last update: Aug 6, 2022

PngNote icon

PngNote is a free, open-source, handwriting note-taking app based on BOOX SDK.

  • Use BOOX SDK: Leverage raw-rendering feature, similar stylus lag to the pre-installed note app.
  • Open-source.
  • Simple, minimum features: Just pencil, erasure, undo, redo.
  • Open data format: Use serial number png files with plain directories. Easy to share data by any folder-sync app. No need to export!

Supported device

Here are the supported devices I heard.

  • BOOX Note3
  • BOOX Note2
  • BOOX Note Air
  • Nova2

Following devices are not working

  • Poke3

I think most of Onyx devices except for the Poke series are working.

Also, there is a version for non-BOOX, standard Android devices in branch. (I will put apk if someone want)

Download apk

The apks of PngNote are at https://github.com/karino2/PngNote/releases

Screen shots

PngNote icon PngNote icon PngNote icon

Licensing

Code

All codes are distributed under the MIT license.

Copyright: karino2

Icon assets

Launcher icon assets (ic_launcher.png) are distributed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International

Artists, Copyright: きみどり-san (twitter: @kani_beam__)

GitHub

https://github.com/karino2/PngNote
You might also like...

A Free, Fully Fledged, Open-Source Music Player for Android

Turtle Player Free, Fully Fledged & Open-Source. The Music Player for Android. Turtle Player is designed to be a fun and unique app for playing your m

Jul 23, 2022

Free and open source manga reader for Android.

Free and open source manga reader for Android.

Build Stable Weekly Preview Contribute Support Server Tachiyomi Tachiyomi is a free and open source manga reader for Android 5.0 and above. Features F

Aug 3, 2022

Tachiyomi is a free and open source manga reader for Android 6.0 and above.

Tachiyomi is a free and open source manga reader for Android 6.0 and above.

Free and open source manga reader for Android.

Aug 14, 2022

AdAway is a free and open source ad blocker for Android.

AdAway is a free and open source ad blocker for Android.

AdAway AdAway is an open source ad blocker for Android using the hosts file and local vpn. For more information visit https://adaway.org Installing Th

Aug 11, 2022

Free and Open Source, full-featured torrent client for Android

Free and Open Source, full-featured torrent client for Android

Free and Open Source, full-featured torrent client for Android

Aug 9, 2022

NimTome is a Free and open-source spell tracker application for Dungeons and Dragons

Nimtome: An open source application to manage all your spells in D&D About This project came to life as a homework assignment, but it became a lot bit

Jan 11, 2022

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software. It primarily helps organize one's finances and keeps track of where, when and how the money goes.

Aug 8, 2022

Free and Open Source Launcher.

Free and Open Source Launcher.

Omega Launcher Free and Open Source Launcher Installation & Download Our builds are available on: Github: Releases or Actions (usually). F-Droid: Eith

Aug 4, 2022

A Free, Open source unofficial manga reader for MangaDex

Neko A Free, Open source unofficial manga reader for MangaDex About: This is a MangaDex specific fork of Tachiyomi and TachiyomiJ2K. This contains fea

Aug 4, 2022
Comments
  • 1. Updated to latest gradle versions and JAVA 11

    Updated to JAVA 11 via JAVA 1.8

    Application now builds on my computer - assuming these are non breaking changes. Did not change any of the other dependencies. Not sure yet of how to test this, so assuming Android Studio did its work correctly (and since I touched no functionality, it should work, right?)

    Reviewed by FrankDomburg at 2022-03-25 09:46
  • 2. Small refactoring to prepare for JetPack compose previews

    Started looking at JetPack compose. Then I figured that the UI was doing a lot of data conversion and stuff. So proceeded to work on taking out some of the non-UI work out of the UI. (which is a pull request coming up).

    But I had this change pending, after I figured how to get the deprecated stuff out, about which we discussed in the other PR, submitting the remainder.

    Reviewed by FrankDomburg at 2022-03-26 08:57
  • 3. Invocation Target Exception

    When going into and out of the directory overview a couple of times, the application sets off an invocation target exception for "Reflect bootstrap failed" and points to the touchHelper on line 187

    Application seems to hickup and recover, but still....

    2022-03-27 14:42:55.268 29602-29602/io.github.karino2.pngnote E/ReflectUtil: reflect bootstrap failed: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.onyx.android.sdk.utils.ReflectUtil.a(SourceFile:11) at com.onyx.android.sdk.utils.ReflectUtil.(SourceFile:4) at com.onyx.android.sdk.utils.ReflectUtil.getDeclaredMethodSafely(SourceFile:1) at com.onyx.android.sdk.device.Device.b(SourceFile:1) at com.onyx.android.sdk.device.Device.a(SourceFile:1) at com.onyx.android.sdk.device.Device.(SourceFile:1) at com.onyx.android.sdk.device.Device.currentDevice(SourceFile:1) at com.onyx.android.sdk.api.device.epd.EpdController.setStrokeColor(SourceFile:1) at com.onyx.android.sdk.pen.touch.AppTouchRender.setStrokeColor(SourceFile:1) at com.onyx.android.sdk.pen.TouchHelper.setStrokeColor(SourceFile:1) at io.github.karino2.pngnote.CanvasBoox$layoutChangedListener$2.invoke$lambda-0(CanvasBoox.kt:187) at io.github.karino2.pngnote.CanvasBoox$layoutChangedListener$2.$r8$lambda$g_KylXsplIA-svy3DfT38JzreWU(Unknown Source:0) at io.github.karino2.pngnote.CanvasBoox$layoutChangedListener$2$$ExternalSyntheticLambda0.onLayoutChange(Unknown Source:17) at android.view.View.layout(View.java:23221) at androidx.compose.ui.viewinterop.AndroidViewHolder.onLayout(AndroidViewHolder.android.kt:164) at android.view.View.layout(View.java:23203) at android.view.ViewGroup.layout(ViewGroup.java:6412) at androidx.compose.ui.viewinterop.AndroidViewHolder_androidKt.layoutAccordingTo(AndroidViewHolder.android.kt:360) at androidx.compose.ui.viewinterop.AndroidViewHolder_androidKt.access$layoutAccordingTo(AndroidViewHolder.android.kt:1) at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$5$measure$1.invoke(AndroidViewHolder.android.kt:284) at androidx.compose.ui.viewinterop.AndroidViewHolder$layoutNode$1$5$measure$1.invoke(AndroidViewHolder.android.kt:283) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:925) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:915) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:128) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:75) at androidx.compose.ui.node.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:56) at androidx.compose.ui.node.LayoutNode.layoutChildren$ui_release(LayoutNode.kt:915) at androidx.compose.ui.node.LayoutNode.onNodePlaced$ui_release(LayoutNode.kt:901) at androidx.compose.ui.node.InnerPlaceable.placeAt-f8xVGno(InnerPlaceable.kt:94) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) 2022-03-27 14:42:55.284 29602-29602/io.github.karino2.pngnote E/ReflectUtil: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative(Placeable.kt:359) at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative$default(Placeable.kt:179) at androidx.compose.foundation.layout.SizeModifier$measure$1.invoke(Size.kt:752) at androidx.compose.foundation.layout.SizeModifier$measure$1.invoke(Size.kt:751) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.node.OuterMeasurablePlaceable.placeAt-f8xVGno(OuterMeasurablePlaceable.kt:149) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.foundation.layout.BoxKt.placeInBox(Box.kt:186) at androidx.compose.foundation.layout.BoxKt.access$placeInBox(Box.kt:1) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1$measure$2.invoke(Box.kt:126) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1$measure$2.invoke(Box.kt:125) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) at androidx.compose.ui.layout.SubcomposeLayoutState$createMeasurePolicy$1$measure$1.placeChildren(SubcomposeLayout.kt:357) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:925) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:915) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:128) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:75) at androidx.compose.ui.node.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:56) at androidx.compose.ui.node.LayoutNode.layoutChildren$ui_release(LayoutNode.kt:915) at androidx.compose.ui.node.LayoutNode.onNodePlaced$ui_release(LayoutNode.kt:901) at androidx.compose.ui.node.InnerPlaceable.placeAt-f8xVGno(InnerPlaceable.kt:94) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.node.OuterMeasurablePlaceable.placeAt-f8xVGno(OuterMeasurablePlaceable.kt:149) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place(Placeable.kt:367) at androidx.compose.ui.layout.Placeable$PlacementScope.place$default(Placeable.kt:191) at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasurePolicy$1$measure$4.invoke(RowColumnImpl.kt:259) at androidx.compose.foundation.layout.RowColumnImplKt$rowColumnMeasurePolicy$1$measure$4.invoke(RowColumnImpl.kt:228) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) 2022-03-27 14:42:55.288 29602-29602/io.github.karino2.pngnote E/ReflectUtil: at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:925) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:915) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:128) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:75) at androidx.compose.ui.node.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:56) at androidx.compose.ui.node.LayoutNode.layoutChildren$ui_release(LayoutNode.kt:915) at androidx.compose.ui.node.LayoutNode.onNodePlaced$ui_release(LayoutNode.kt:901) at androidx.compose.ui.node.InnerPlaceable.placeAt-f8xVGno(InnerPlaceable.kt:94) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.node.OuterMeasurablePlaceable.placeAt-f8xVGno(OuterMeasurablePlaceable.kt:149) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.foundation.layout.BoxKt.placeInBox(Box.kt:186) at androidx.compose.foundation.layout.BoxKt.access$placeInBox(Box.kt:1) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1$measure$2.invoke(Box.kt:126) at androidx.compose.foundation.layout.BoxKt$boxMeasurePolicy$1$measure$2.invoke(Box.kt:125) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:925) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:915) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:128) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:75) at androidx.compose.ui.node.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:56) at androidx.compose.ui.node.LayoutNode.layoutChildren$ui_release(LayoutNode.kt:915) at androidx.compose.ui.node.LayoutNode.onNodePlaced$ui_release(LayoutNode.kt:901) at androidx.compose.ui.node.InnerPlaceable.placeAt-f8xVGno(InnerPlaceable.kt:94) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer(Placeable.kt:393) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer$default(Placeable.kt:266) at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:221) at androidx.compose.ui.graphics.SimpleGraphicsLayerModifier$measure$1.invoke(GraphicsLayerModifier.kt:220) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) 2022-03-27 14:42:55.305 29602-29602/io.github.karino2.pngnote E/ReflectUtil: at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.placeWithLayer-aW-9-wM(Placeable.kt:396) at androidx.compose.ui.node.OuterMeasurablePlaceable.placeAt-f8xVGno(OuterMeasurablePlaceable.kt:151) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelativeWithLayer(Placeable.kt:385) at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelativeWithLayer$default(Placeable.kt:246) at androidx.compose.ui.layout.RootMeasurePolicy$measure$2.invoke(RootMeasurePolicy.kt:43) at androidx.compose.ui.layout.RootMeasurePolicy$measure$2.invoke(RootMeasurePolicy.kt:39) at androidx.compose.ui.layout.MeasureScope$layout$1.placeChildren(MeasureScope.kt:68) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:925) at androidx.compose.ui.node.LayoutNode$layoutChildren$1.invoke(LayoutNode.kt:915) at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:1776) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:123) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:75) at androidx.compose.ui.node.OwnerSnapshotObserver.observeLayoutSnapshotReads$ui_release(OwnerSnapshotObserver.kt:56) at androidx.compose.ui.node.LayoutNode.layoutChildren$ui_release(LayoutNode.kt:915) at androidx.compose.ui.node.LayoutNode.onNodePlaced$ui_release(LayoutNode.kt:901) at androidx.compose.ui.node.InnerPlaceable.placeAt-f8xVGno(InnerPlaceable.kt:94) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50$default(Placeable.kt:203) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper$measure$1$1.placeChildren(DelegatingLayoutNodeWrapper.kt:123) at androidx.compose.ui.node.DelegatingLayoutNodeWrapper.placeAt-f8xVGno(DelegatingLayoutNodeWrapper.kt:111) at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.place-70tqf50(Placeable.kt:370) at androidx.compose.ui.node.OuterMeasurablePlaceable.placeAt-f8xVGno(OuterMeasurablePlaceable.kt:149) 2022-03-27 14:42:55.321 29602-29602/io.github.karino2.pngnote E/ReflectUtil: at androidx.compose.ui.layout.Placeable.access$placeAt-f8xVGno(Placeable.kt:31) at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative(Placeable.kt:359) at androidx.compose.ui.layout.Placeable$PlacementScope.placeRelative$default(Placeable.kt:179) at androidx.compose.ui.node.LayoutNode.place$ui_release(LayoutNode.kt:803) at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureAndLayout(MeasureAndLayoutDelegate.kt:213) at androidx.compose.ui.platform.AndroidComposeView.onMeasure(AndroidComposeView.android.kt:547) at android.view.View.measure(View.java:25833) at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release(ComposeView.android.kt:278) at androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:265) at android.view.View.measure(View.java:25833) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:25833) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552) at android.widget.LinearLayout.measureVertical(LinearLayout.java:842) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:25833) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6980) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:761) at android.view.View.measure(View.java:25833) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3676) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2460) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2739) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2179) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8787) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1037) at android.view.Choreographer.doCallbacks(Choreographer.java:845) at android.view.Choreographer.doFrame(Choreographer.java:780) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7842) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) Caused by: java.lang.NoSuchMethodException: dalvik.system.VMRuntime.setHiddenApiExemptions [class [Ljava.lang.String;] at java.lang.Class.getMethod(Class.java:2103) at java.lang.Class.getDeclaredMethod(Class.java:2081) ... 211 more

    Reviewed by FrankDomburg at 2022-03-27 12:50
Related tags
Note-Taking-App - Android application which can be used to take notes
Note-Taking-App - Android application which can be used to take notes

Android application which can be used to take notes.The application uses Recycle

Jan 30, 2022
Note taking app using MVVM architecture with Hilt, Material Motion, Coroutines, Flow, Jetpack
Note taking app using MVVM architecture with Hilt, Material Motion, Coroutines, Flow, Jetpack

Note taking app using MVVM architecture with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel,Paging3).

Apr 25, 2022
Note-taking Android App
Note-taking Android App

NOTEDGE Note-taking Android app Website » Download » Tech Stack Appcompat Material Design Room RecyclerView RecyclerView Animators Lifecycle Rounded I

Jul 27, 2022
NoteApp - A note taking app illustrating Android best practices with Jetpack Compose.
NoteApp - A note taking app illustrating Android best practices with Jetpack Compose.

NoteApp - A note taking app illustrating Android best practices with Jetpack Compose.

Jun 14, 2022
Note taking application using Kotlin and Firebase Realtime Database.
 Note taking application using Kotlin and Firebase Realtime Database.

Notes-Firebase-Kotlin Note taking application using Kotlin and Firebase Realtime Database. Features:- 1.Signup With Google 2.Create Note 3.Update Note

Aug 1, 2022
Easy-Note - Easy Note Application will help user to add and update their important notes
Easy-Note - Easy Note Application will help user to add and update their important notes

Easy-Note ??️ Easy Note App helps you to create your notes. You can ?? edit and

Jan 30, 2022
A free and open-source offline authenticator app for Wear OS.
A free and open-source offline authenticator app for Wear OS.

Wristkey Need 2FA codes quickly, right on your Wear watch without needing a phone? Wristkey is an open-source 2FA client for Wear OS watches that does

Jul 19, 2022
A Free, open source Contacts Butler App built with kotlin
A Free, open source Contacts Butler App built with kotlin

Contacts Butler Do you have a bunch of contacts that are missing a lot of info such as names, emails, phone numbers, etc? Do you really know the conta

Nov 30, 2021
Aegis Authenticator is a free, secure and open source 2FA app for Android
Aegis Authenticator is a free, secure and open source 2FA app for Android

Aegis Authenticator Aegis Authenticator is a free, secure and open source 2FA app for Android. It aims to provide a secure authenticator for your onli

Aug 9, 2022
Authenticator Pro is a free open-source two factor authentication app for Android
Authenticator Pro is a free open-source two factor authentication app for Android

Authenticator Pro Authenticator Pro is a free open-source two factor authentication app for Android. It features encrypted backups, icons, categories

Aug 5, 2022