Android emulator shell list fails: Permission Denied in app directory

Today I learned I should include the app package name after shell in my ADB command, if for example I want to list files under the “subdirectory/media” directory of an app, like so: adb -s emulator-5556 shell run-as com.domain.my.app ls -al /data/user/0/com.domain.my.app/subdirectory/media First try’s command below failed with a Permission Denied error message: adb -s […]

Read More

Exception: No signature of method android() is applicable for argument types, Build Gradle // Dev Diary

Today I wanted to make a data class a Parcelable so that I could pass it as an argument in Navigation component. Parcelables, though better in performance than Serializables, take more time to implement! To help us out, there’s a “kotlin-parcelize” plugin that can generate the boilerplate code for us. There were issues though. After […]

Read More

Fix coroutine error: Cannot access database on the main thread // Android Dev Diary

As I was running a test for a ViewModel function, I encountered the following error: […] Main Thread @coroutine java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time. I think it may be caused by the viewModelScope from viewModelScope.launch {} being used by […]

Read More

Dao Error: Not sure how to handle query method’s return type //Android Kotlin Dev Diary

As I brush up on my Room database knowlege I came upon the following error while building my app:

The solution: Set Kotlin version to 1.6.10 then Room to 2.4.2 (Or use more recent compatible versions) in my top-level build.gradle file. Reference: Android Room Kotlin throws Delete Query error

Read More