简体   繁体   中英

attempt to invoke virtual method on a null object reference android

  04-05 04:02:50.197 11202-11202/com.Salman.apple.flashlight E/FlashLight: failed to open Camera
04-05 04:02:52.041 11202-11564/com.Salman.apple.flashlight E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
04-05 04:02:58.974 11202-11202/com.Salman.apple.flashlight E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: com.Salman.apple.flashlight, PID: 11202
                                                                             java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.startPreview()' on a null object reference
                                                                                 at com.Salman.apple.flashlight.MainActivity$FlashOnOffListener.onClick(MainActivity.java:115)
                                                                                 at android.view.View.performClick(View.java:5204)
                                                                                 at android.view.View$PerformClick.run(View.java:21153)
                                                                                 at android.os.Handler.handleCallback(Handler.java:739)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

 public class MainActivity extends Activity { private TextView batterylevel; private Camera camera; private Camera.Parameters parameters; private ImageButton btn_power; boolean isFlashLightOn = false; MediaPlayer mp; Context context; private AdView mAdView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAdView = (AdView) findViewById(R.id.ad_view); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .build(); mAdView.loadAd(adRequest); btn_power = (ImageButton) findViewById(R.id.btn_power); btn_power.setOnClickListener(new FlashOnOffListener()); batterylevel = (TextView) this.findViewById(R.id.batterylevel); Typeface face = Typeface.createFromAsset(getAssets(), "fonts/Advantage Demi Oblique.ttf"); batterylevel.setTypeface(face); getbatterypercentage(); /* if (isFlashSupported()){ camera = Camera.open(); parameters = camera.getParameters(); } else { showNoFlashAlert(); }*/ try{ onDestroy(); if(isFlashSupported()){ camera = camera.open(); parameters = camera.getParameters(); } else { showNoFlashAlert(); } }catch (Exception e){ Log.e(getString(R.string.app_name), "failed to open Camera"); e.printStackTrace(); } } @Override protected void onDestroy() { if (camera != null) { camera.stopPreview(); camera.setPreviewCallback(null); camera.release(); camera.setParameters(parameters); camera = null; } super.onDestroy(); } private class FlashOnOffListener implements View.OnClickListener{ @Override public void onClick(View v) { if(isFlashLightOn){ btn_power.setImageResource(R.drawable.flashlight_button_off); parameters.setFlashMode(Parameters.FLASH_MODE_OFF); camera.setParameters(parameters); camera.stopPreview(); isFlashLightOn = false; playSound(); }else{ btn_power.setImageResource(R.drawable.flashlight_button_on); parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); camera.setParameters(parameters); camera.startPreview(); isFlashLightOn = true; playSound(); } } } private void showNoFlashAlert() { new AlertDialog.Builder(this) .setMessage("Your device hardware does not support flashlight!") .setIcon(android.R.drawable.ic_dialog_alert).setTitle("Error") .setPositiveButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); finish(); } }).show(); } private boolean isFlashSupported() { PackageManager pm = getPackageManager(); return pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); } ilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(batteryLevelReciever, batteryLevelFilter); } // @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } } 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM