AndroidRuntime: java.lang.RuntimeException: Unable to instantiate receiver
没有 public 声明 BroadcastReceiver 类就会报错误
21:24:38.852 4626 4626 E AndroidRuntime: Process: com.xxx.yyy, PID: 4626
09-22 21:24:38.852 4626 4626 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate receiver com.xxx.yyy.BootReceiver: java.lang.IllegalAccessException: java.lang.Class<com.xxx.yyy.BootReceiver> is not accessible from java.lang.Class<android.app.AppComponentFactory>
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.app.ActivityThread.handleReceiver(ActivityThread.java:3775)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.app.ActivityThread.access$1400(ActivityThread.java:220)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1871)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7400)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: Caused by: java.lang.IllegalAccessException: java.lang.Class<com.xxx.yyy.BootReceiver> is not accessible from java.lang.Class<android.app.AppComponentFactory>
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at java.lang.Class.newInstance(Native Method)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.app.AppComponentFactory.instantiateReceiver(AppComponentFactory.java:110)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at androidx.core.app.CoreComponentFactory.instantiateReceiver(CoreComponentFactory.java:54)
09-22 21:24:38.852 4626 4626 E AndroidRuntime: at android.app.ActivityThread.handleReceiver(ActivityThread.java:3768)
修改为
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}