馃殌 CodeAssist 3.9.8
ICONS
- New Icon Manager: browse the drawables and mipmaps in your project, search a bundled Material Symbols catalog, and drop an icon in as a vector drawable or as a Compose icon snippet.
- New App Icon studio: design a launcher icon, preview it at every density, and write the generated icons plus the manifest entries for you.
- The drawable preview understands a lot more XML now (layer lists, gradients, insets), so drawables that used to show up blank render properly.
XML AND LAYOUTS
- Layout files now flag an element that does not exist, with "did you mean" fixes that rename both the opening and closing tag.
- More layout checks: children under a view that is not a
ViewGroup, an<include>with nolayout, a<merge>that is not the root, a<fragment>naming no class, and the same@+iddeclared twice. - In
res/values: a declaration missing itsname, and one name declared twice for the same R class. - Attributes added by a quick fix or by the preview's attribute editor now follow the element's own formatting: one per line if that is how the element is written, inline if it is compact.
KOTLIN
- An infix operator that resolves to nothing is now reported instead of passing silently.
- A mismatched import now offers a fix.
- Parameter types that are primitive arrays are read correctly from library bytecode, so those signatures and completions are right.
FIXES
- Fixed a crash on startup that showed "Failed to start" on some devices.
- Ending a run now waits for threads the program started itself, so a background thread can no longer fail with "zip file closed" just after the run ends.
- KSP processors that bundle their own Guava now load it self-first, fixing failures in dexed processors.
Full changelog: https://github.com/tyron12233/CodeAssist/releases/tag/v3.9.8