آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوال مهم (کرش) (حل نشده)

atf  11 سال پیش  11 سال پیش
0 0

سلام 

به برنامه یک منو اضافه کردم موقعی که وارد منو میشم همه چی خوبه اما وقتی کلید back رو میزنم کرش میکنه

این پیغام رو میده

 E/AndroidRuntime(15909): at ir.atf.vcp.flashlight.MainActivity.surfaceCreated(MainActivity.java:135)

اینم خط کدی که اشکال ازش گرفته میشه 

اینم کل کد ها

 public class MainActivity extends ActionBarActivity implements
		SurfaceHolder.Callback {

	private boolean isLighOn = false;

	private Camera camera;

	private ImageButton button;
	SurfaceHolder mHolder;

	@Override
	protected void onStart() {
		super.onStart();

		SurfaceView preview = (SurfaceView) findViewById(R.id.surface);
		mHolder = preview.getHolder();
		mHolder.addCallback(this);
	}

	@Override
	protected void onStop() {
		super.onStop();

		if (camera != null) {
			camera.release();
		}
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		button = (ImageButton) findViewById(R.id.falshlight_switch);

		Context context = this;
		PackageManager pm = context.getPackageManager();

		// if device support camera?
		if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {

			Log.e("err", "Device has no camera!");
			return;
		}

		camera = Camera.open();
		final Parameters p = camera.getParameters();

		button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View arg0) {

				if (isLighOn) {
					// turnOffFlash();

					Log.i("info", "torch is turn off!");

					p.setFlashMode(Parameters.FLASH_MODE_OFF);

					Toast.makeText(getApplicationContext(),
							"چراغ قوه خاموش است", Toast.LENGTH_SHORT).show();

					camera.setParameters(p);
			                camera.stopPreview();
					isLighOn = false;

				} else {
					// turnOnFlash();

					Log.i("info", "torch is turn on!");

					p.setFlashMode(Parameters.FLASH_MODE_TORCH);
					Toast.makeText(getApplicationContext(),
							"چراغ قوه روشن است", Toast.LENGTH_SHORT).show();
					camera.setParameters(p);
					camera.startPreview();
					isLighOn = true;

				}
			}
		});
	}

	// private void turnOnFlash() {
	// Log.i("info", "torch is turn on!");
	//
	// p.setFlashMode(Parameters.FLASH_MODE_TORCH);
	//
	// camera.setParameters(p);
	// camera.startPreview();
	// isLighOn = true;
	//
	// }
	//
	// private void turnOffFlash() {
	// Log.i("info", "torch is turn off!");
	//
	// p.setFlashMode(Parameters.FLASH_MODE_OFF);
	// camera.setParameters(p);
	// camera.stopPreview();
	// isLighOn = false;
	// }

	@Override
	public void surfaceChanged(SurfaceHolder holder, int format, int width,
			int height) {

	}

	@Override
	public void surfaceCreated(SurfaceHolder holder) {
		mHolder = holder;
		try {
			Log.i("SurfaceHolder", "setting preview");
		اشکال اینجاست	camera.setPreviewDisplay(holder);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		
	}

	@Override
	public void surfaceDestroyed(SurfaceHolder holder) {
		Log.i("SurfaceHolder", "stopping preview");
		try {
			camera.stopPreview();
		} catch (Exception e) {
			e.printStackTrace();
		}
		mHolder = null;
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {

		int id = item.getItemId();
		if (id == R.id.about) {
			Intent i = new Intent();
			i.setClass(this, About.class);
			startActivity(i);
		}

		int id1 = item.getItemId();
		if (id1 == R.id.myapp) {
			Intent i = new Intent();
			i.setClass(this, Myapp.class);
			startActivity(i);
		}

		return true;
	}
}

لطفا کمک کنن اساتید

قبلا هم کرش میکرد ولی اونو تونستم رفع بکنم

اما الان نمیشه 

اگه چیز بیشتری هم لازم بود بگید بزارم

 

تمیزشد

0 0
دوست عزیز کدتون رو تمیز و اصولی بنویسید که راهنمایی کردنتون امکان پذیر باشه! (11 سال پیش)
0 0
1 فک میکنم مربوط به کد پرمیشن باشه 2 شاید اشکل از عدم تطابق با رزلوشین دستگاه باشه . لطفا کد رو هم تمیز قرار بدید با ابزار درج سورس کد (11 سال پیش)
0 0
دوستان کل کد رو قرار دادم (11 سال پیش)
0 0
کل کد ها رو قرار دادم (11 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .