Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
I grabbed a logcat from API 31 and another logcat from API 33 (first boot, Pixel 5 rather than Pixel 4a), in case they prove helpful. The failures seem the same, surfaceflinger crashing over and over again.
I noticed some older images had been re-published as arm64-v8a since I got the M1 and had to leave behind older images. I setup an AVD with API 23, and it booted up fine.
I noticed some older images had been re-published as arm64-v8a since I got the M1 and had to leave behind older images. I setup an AVD with API 23, and it booted up fine.
ap...@google.com <ap...@google.com> #3
I was excited to see "[Bug Fix] Error with launching API 33 AVD on Mac M1" in the Emulator release notes (https://developer.android.com/studio/releases/emulator ) but alas, there is no change. Surfaceflinger still crashes repeatedly in the API 31 and API 33 images.
I was just prompted to upgrade my Emulator to 31.3.12 but there aren't release notes for it yet. I did not help with this issue, surfaceflinger still crashes repeatedly in the API 31 and API 33 images.
I was just prompted to upgrade my Emulator to 31.3.12 but there aren't release notes for it yet. I did not help with this issue, surfaceflinger still crashes repeatedly in the API 31 and API 33 images.
il...@google.com <il...@google.com> #4
I did some more googling and went from https://stackoverflow.com/questions/45244891/android-emulator-inside-docker-container-surfaceflinger-crashing-endldess-boot-l to https://www.jc-tech.info/2018/04/10/android-emulator-crashing-due-to-access-violation/ , which suggested changing the Emulator to use SwiftShader.
Changing the Emulator to use SwiftShader instead of Desktop native OpenGL allowed the Emulator to run from Terminal. At least for API 31 and 33, but not for API 30. Also, nothing was working when embedded into Android Studio...
I'm not sure why my Emulator wasn't set to auto (may literally have been for ancient Android 2.3 images?), but I set it to auto (see screenshot) and now everything works!
I was able to launch all of these from within Android Studio and deploy apps to them: API 23, 28, 30, 31, 32 and 33.
I guess that means you can close this :)
Changing the Emulator to use SwiftShader instead of Desktop native OpenGL allowed the Emulator to run from Terminal. At least for API 31 and 33, but not for API 30. Also, nothing was working when embedded into Android Studio...
I'm not sure why my Emulator wasn't set to auto (may literally have been for ancient Android 2.3 images?), but I set it to auto (see screenshot) and now everything works!
I was able to launch all of these from within Android Studio and deploy apps to them: API 23, 28, 30, 31, 32 and 33.
I guess that means you can close this :)
Description
Version used: 1.0.0-alpha11
Devices/Android versions reproduced on: irrelevant
<activity <== ACTIVITY AS DESTINATION
android:id="@+id/NewsDetailActivity"
android:name="co.bstorm.navtest.ui.news.newsdetail.NewsDetailActivity"
android:label="activity"
tools:layout="@layout/activity_news_detail">
<argument
android:name="model"
app:argType="co.bstorm.navtest.model.CustomModel[]" /> <== ARRAY OF PARCELABLES AS ARGTYPE
</activity>
When I use Activity as a destination, and have an argument argType as array of Parcelable custom model class, library crashes on destination inside safeArgs generated code when trying to extract the Parcelable array from Bundle:
2019-02-06 13:49:18.523 25348-25348/co.bstorm.navtest E/AndroidRuntime: FATAL EXCEPTION: main
Process: co.bstorm.navtest, PID: 25348
java.lang.RuntimeException: Unable to start activity ComponentInfo{co.bstorm.navtest/co.bstorm.navtest.ui.news.newsdetail.NewsDetailActivity}: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to co.bstorm.navtest.model.CustomModel[]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2793)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
Caused by: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to co.bstorm.navtest.model.CustomModel[]
at co.bstorm.navtest.ui.news.newsdetail.NewsDetailActivityArgs$Companion.fromBundle(NewsDetailActivityArgs.kt:25)
at co.bstorm.navtest.ui.news.newsdetail.NewsDetailActivity.onCreate(NewsDetailActivity.kt:13)
at android.app.Activity.performCreate(Activity.java:6915)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
The exact same setup works properly with the only difference being a Fragment as the destination, instead of activity, which once again flags this as definitely a library bug, and not something on my side.
Sample project:
Instructions:
1. Run app
2. Click on Settings in the upper right
3. App crashes when the destination Activity tries to un-bundle the parcelable array.
There is also a commented out action for the Fragment destination with the same setup which works properly.