安卓如何修复BootReceiver java。lang.NullPointerException?
我遇到了这个错误,我不知道如何修复它:
09-18 10:14:34.482: E/Trace(787): error opening trace file: No such file or directory (2)
09-18 10:14:34.542: W/ResourceType(787): No package identifier when getting value for resource number 0x00000000
09-18 10:14:34.683: E/BootReceiver(787): java.lang.NullPointerException
有人能告诉我如何修复这个错误吗
BroadcastReceiver java:
public class BootReceiver extends BroadcastReceiver {
private static final String TAG="BootReceiver";
@Override
public void onReceive(Context context,Intent intent) {
try {
DisplayMetrics metrics = new DisplayMetrics();
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
windowManager.getDefaultDisplay().getMetrics(metrics);
int height = metrics.heightPixels;
int width = metrics.widthPixels;
Bitmap tempbitMap = BitmapFactory.decodeResource(context.getResources(), MainActivity.tophone);
WallpaperManager wallpaperManager = WallpaperManager.getInstance(context);
wallpaperManager.setWallpaperOffsetSteps(1, 1);
wallpaperManager.suggestDesiredDimensions(width, height);
try {
wallpaperManager.setBitmap(tempbitMap);
} catch (IOException e) {
e.printStackTrace();
}
} catch(Exception e){
Log.e(TAG,e.toString());
}
}
}
# 1 楼答案
应用程序无法找到
MainActivity.tophone
,因为您的设备刚刚启动,而您的应用程序尚未打开,这意味着tophone
变量尚未初始化。因此,由于No package identifier
,它触发了NullPointerException
。这意味着它无法找到具有实际为空的给定名称的资源决心: