Avni's Troubleshooting Archives

A collection of my experiences, mistakes, and fixes while working with Android Studio. One solution at a time.

January 26, 2025

Android 15: Fixing broken Edge-to-Edge Layouts

Ensuring your UI is ready for the new default edge-to-edge behavior in Android 15.

Read Full Post
January 20, 2025

Gradle Version Catalog: Centralized Dependencies

Scaling multi-module projects with libs.versions.toml for type-safe dependency management.

Read Full Post
January 05, 2025

SQLite ANR Fix: Stop Blocking the Main Thread

Optimizing database access with transactions and Coroutines to prevent UI stutters.

Read Full Post
December 15, 2024

Deep Link Verification: Why It Fails

Troubleshooting assetlinks.json and Play Console SHA-256 fingerprint mismatches.

Read Full Post
December 02, 2024

Android App Bundles: Reducing Download Size

Configuring resConfigs and split configurations to deliver optimized APKs to users.

Read Full Post
November 15, 2024

CameraX Cleanup: Fixing Black Previews

Ensuring correct surface provider binding and aspect ratio handling for resilient camera apps.

Read Full Post
October 22, 2024

Migrating to DataStore: Avoiding Data Loss

Using the SharedPreferencesMigration tool to safely transition to Jetpack DataStore Flow.

Read Full Post
September 18, 2024

Jetpack Compose: Diagnosing Recomposition Lags

Mastering stability and derivedStateOf to maintain smooth 60fps declarative UIs.

Read Full Post
August 05, 2024

Hilt Troubleshooting: Fixing EntryPoint Crashes

Correcting visibility issues and using manual EntryPoints for non-supported Android components.

Read Full Post
July 12, 2024

WorkManager Reliability: Ensuring Background Tasks Run

Handling Doze Mode constraints and process death with Unique Work policies.

Read Full Post
August 28, 2024

Slow Emulator? Fix Hardware Acceleration on Windows

Ensuring BIOS virtualization and SDK drivers are correctly configured for peak emulator speed.

Read Full Post
August 05, 2024

Speed Up Your Builds: Tuning the Gradle Daemon

Tuning memory args and enabling parallel execution to save minutes on every build.

Read Full Post
July 10, 2024

R8 Optimization: Why Your Release Build Crashes

Protecting reflection-based libraries and data models from over-aggressive code shrinking.

Read Full Post
June 22, 2024

Debugging Retrofit: When JSON Parsing Goes Wrong

Using SerializedName and LoggingInterceptors to catch malformed JSON errors early.

Read Full Post
May 15, 2024

Room Migration: Surviving Database Schema Changes

Implementing AutoMigrations and manual SQL to prevent data loss during app updates.

Read Full Post
April 05, 2024

Stopping Memory Leaks using Coroutine Scopes

Why GlobalScope is dangerous and how to use lifecycle-aware scopes to keep your app memory-efficient.

Read Full Post
March 20, 2024

Foreground Service Type Changes in Android 14

Navigating strict requirements for foreground services in API 34 to avoid immediate crashes.

Read Full Post
March 05, 2024

Debugging 'ActivityNotFoundException' in Managed Projects

Uncovering why basic intents were failing in modularized Android architectures and manifest logic fixes.

Read Full Post
February 14, 2024

The Danger of ViewBinding in Fragments

Preventing memory leaks and NullPointerExceptions by properly managing lifecycle-aware bindings.

Read Full Post
February 12, 2024

Missing SDK: Recovering from Corrupted Studio Updates

When 'SDK path not found' ruins your morning. A guide to manual SDK management and env variables.

Read Full Post
January 31, 2024

Solving Manifest Merger Conflicts with Libraries

Using tools:replace to resolve attribute conflicts when merging third-party library manifests.

Read Full Post
January 28, 2024

RecyclerView Performance: Smooth Scrolling Hacks

Eliminating scroll stutter by optimizing bind holders and leveraging DiffUtil for list updates.

Read Full Post
January 15, 2024

The Gradle Nightmare: Fixing Unresolved Dependencies

Dealing with proxy issues and repository configurations that blocked the entire 2024 build process.

Read Full Post