为什么Android-SliceViewer失败

时间:2019-03-19 10:22:32

标签: android-slices

我正在尝试遵循此Google Codelab

Creating Android Slices

当我输入以下adb命令

adb shell am start -a android.intent.action.VIEW -d slice-content://com.android.example.slicecodelab/temperature

Slice Viewer崩溃如下:-

2019-03-19 10:16:05.704 8343-8583/com.example.android.sliceviewer E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
    Process: com.example.android.sliceviewer, PID: 8343
    java.lang.NullPointerException: name == null
        at java.lang.Enum.valueOf(Enum.java:242)
        at android.graphics.PorterDuff$Mode.valueOf(PorterDuff.java:178)
        at androidx.core.graphics.drawable.IconCompat.onPostParceling(IconCompat.java:757)
        at androidx.core.graphics.drawable.IconCompatParcelizer.read(IconCompatParcelizer.java:19)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1369)
        at androidx.slice.SliceItemHolderParcelizer.read(SliceItemHolderParcelizer.java:12)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1369)
        at androidx.slice.SliceItemParcelizer.read(SliceItemParcelizer.java:15)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.VersionedParcel.readArray(VersionedParcel.java:1342)
        at androidx.versionedparcelable.VersionedParcel.readArray(VersionedParcel.java:1311)
        at androidx.slice.SliceParcelizer.read(SliceParcelizer.java:13)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1369)
        at androidx.slice.SliceItemHolderParcelizer.read(SliceItemHolderParcelizer.java:12)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1369)
        at androidx.slice.SliceItemParcelizer.read(SliceItemParcelizer.java:15)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.VersionedParcel.readArray(VersionedParcel.java:1342)
        at androidx.versionedparcelable.VersionedParcel.readArray(VersionedParcel.java:1311)
        at androidx.slice.SliceParcelizer.read(SliceParcelizer.java:13)
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.versionedparcelable.VersionedParcel.readFromParcel(VersionedParcel.java:1440)
        at androidx.versionedparcelable.VersionedParcel.readVersionedParcelable(VersionedParcel.java:1386)
        at androidx.versionedparcelable.ParcelImpl.<init>(ParcelImpl.java:37)
        at androidx.versionedparcelable.ParcelImpl$1.createFromParcel(ParcelImpl.java:61)
        at androidx.versionedparcelable.ParcelImpl$1.createFromParcel(ParcelImpl.java:58)
        at android.os.Parcel.readParcelable(Parcel.java:2860)
        at android.os.Parcel.readValue(Parcel.java:2754)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3123)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:273)
        at android.os.BaseBundle.unparcel(BaseBundle.java:226)
        at android.os.Bundle.getParcelable(Bundle.java:939)
        at androidx.slice.compat.SliceProviderCompat.bindSlice(SliceProviderCompat.java:320)
2019-03-19 10:16:05.704 8343-8583/com.example.android.sliceviewer E/AndroidRuntime:     at androidx.slice.compat.SliceProviderCompat.bindSlice(SliceProviderCompat.java:378)
        at androidx.slice.SliceViewManagerCompat.bindSlice(SliceViewManagerCompat.java:65)
        at androidx.slice.widget.SliceLiveData$SliceLiveDataImpl$1.run(SliceLiveData.java:291)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)

实际上,无论我尝试使用Slice Viewer的任何Android Slice教程,都以完全相同的方式失败

Android Slices是否准备好使用?

我错了什么?

如何修复切片查看器?

更新

我提出了一个问题(问题128658881),而Google正在解决此问题。

1 个答案:

答案 0 :(得分:1)

当我们尝试在切片中显示图标时,Slice-viewer应用程序在API 28以下的设备上崩溃。该应用程序不会在Pie上崩溃。

This issue is described here