android / android/security-samples
Does not work on Pixel C
- 主要言語
- Kotlin
- スター
- 1k
- フォーク
- 450
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
**Issue by [debbiefu](https://github.com/debbiefu)**
_Tuesday Jul 12, 2016 at 08:06 GMT_
_Originally opened as https://github.com/googlesamples/android-DirectBoot/issues/7_
----
07-12 03:24:22.197 492 526 E Parcel : Class not found when unmarshalling: com.example.android.directboot.alarms.Alarm
07-12 03:24:22.197 492 526 E Parcel : java.lang.ClassNotFoundException: com.example.android.directboot.alarms.Alarm
07-12 03:24:22.197 492 526 E Parcel : at java.lang.Class.classForName(Native Method)
07-12 03:24:22.197 492 526 E Parcel : at java.lang.Class.forName(Class.java:400)
07-12 03:24:22.197 492 526 E Parcel : at android.os.Parcel.readParcelableCreator(Parcel.java:2490)
07-12 03:24:22.197 492 526 E Parcel : at android.os.Parcel.readParcelable(Parcel.java:2444)
07-12 03:24:22.197 492 526 E Parcel : at android.os.Parcel.readValue(Parcel.java:2347)
07-12 03:24:22.197 492 526 E Parcel : at android.os.Parcel.readArrayMapInternal(Parcel.java:2700)
07-12 03:24:22.197 492 526 E Parcel : at android.os.BaseBundle.unparcel(BaseBundle.java:269)
07-12 03:24:22.197 492 526 E Parcel : at android.os.Bundle.putAll(Bundle.java:226)
07-12 03:24:22.197 492 526 E Parcel : at android.content.Intent.fillIn(Intent.java:8171)
07-12 03:24:22.197 492 526 E Parcel : at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:240)
07-12 03:24:22.197 492 526 E Parcel : at com.android.server.am.PendingIntentRecord.sendWithResult(PendingIntentRecord.java:209)
07-12 03:24:22.197 492 526 E Parcel : at com.android.server.am.ActivityManagerService.sendIntentSender(ActivityManagerService.java:7084)
07-12 03:24:22.197 492 526 E Parcel : at android.app.PendingIntent.send(PendingIntent.java:806)
07-12 03:24:22.197 492 526 E Parcel : at com.android.server.AlarmManagerService$DeliveryTracker.deliverLocked(AlarmManagerService.java:2984)
07-12 03:24:22.197 492 526 E Parcel : at com.android.server.AlarmManagerService.deliverAlarmsLocked(AlarmManagerService.java:2424)
07-12 03:24:22.197 492 526 E Parcel : at com.android.server.AlarmManagerService$AlarmThread.run(AlarmManagerService.java:2543)
07-12 03:24:22.197 492 526 E Parcel : Caused by: java.lang.ClassNotFoundException: com.example.android.directboot.alarms.Alarm
07-12 03:24:22.197 492 526 E Parcel : at java.lang.Class.classForName(Native Method)
07-12 03:24:22.197 492 526 E Parcel : at java.lang.BootClassLoader.findClass(ClassLoader.java:1346)
07-12 03:24:22.197 492 526 E Parcel : at java.lang.BootClassLoader.loadClass(ClassLoader.java:1406)
07-12 03:24:22.197 492 526 E Parcel : at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
07-12 03:24:22.197 492 526 E Parcel : ... 16 more
07-12 03:24:22.197 492 526 E Parcel : Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
--------- beginning of crash
07-12 03:24:22.204 3178 3215 E AndroidRuntime: FATAL EXCEPTION: IntentService[com.example.android.directboot.alarms.AlarmIntentService]
07-12 03:24:22.204 3178 3215 E AndroidRuntime: Process: com.example.android.directboot, PID: 3178
07-12 03:24:22.204 3178 3215 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'int com.example.android.directboot.alarms.Alarm.hour' on a null object reference
07-12 03:24:22.204 3178 3215 E AndroidRuntime: at com.example.android.directboot.alarms.AlarmIntentService.onHandleIntent(AlarmIntentService.java:54)
07-12 03:24:22.204 3178 3215 E AndroidRuntime: at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:67)
07-12 03:24:22.204 3178 3215 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
07-12 03:24:22.204 3178 3215 E AndroidRuntime: at android.os.Looper.loop(Looper.java:154)
07-12 03:24:22.204 3178 3215 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:61)
コントリビューションガイド
調査の方向性
まず Pixel C で障害を再現し、54 行目の AlarmIntentService.onHandleIntent と、stack trace で示されている Alarm クラスを読みます。PendingIntent を通じてアラームがどのように渡されるかを追跡し、サービスがクラッシュしなくなり、アラームが正しく配信されることを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- android, kotlin
- 領域
- mobile, security
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 25/100