2016-04-04 5 views
1
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) 
+0

Пожалуйста задать четкие вопросы, чтобы получить полезные ответы –

+0

Пожалуйста, вставьте соответствующий код для поддержки вашего вопроса. –

+0

Попытка вызвать виртуальный метод 'void android.hardware.Camera $ Parameters.setFlashMode (java.lang.String)' для ссылки на нулевой объект. Получение этой ошибки (Извините за излишний вопрос, я новичок здесь) –

ответ

0

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; 
 
     } 
 

 
     
 

 
}

+0

вопрос и вставьте этот код там. –

Смежные вопросы