2

ПолучениеSamsung Galaxy проблема устройства камеры Намерение

ниже ошибки: -

make sure class name exists is public and has an empty constructor that is public android

при вызове

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(intent, CAMERA_CODE); 

Я хочу пример для галактики устройств для намерений камеры пожалуйста любое тело может помочь в выпуске устройства samsung!

Примечание: - Возможно, это воссоздание активности, и окончательный вариант иногда приводит к сбою приложения, либо изображение не выполняется, поэтому, пожалуйста, помогите мне!

StackTrace: -

java.lang.RuntimeException: Unable to start activity ComponentInfo{MYActivity}: android.app.Fragment$InstantiationException: Unable to instantiate fragment MYFragment: make sure class name exists, is public, and has an empty constructor that is public at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2693) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2758) at android.app.ActivityThread.access$900(ActivityThread.java:177) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1448) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5942) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)

+0

Пожалуйста, разместите ** всю трассировку стека **. – CommonsWare

+0

@CommonsWare опубликовали его – Hardy

ответ

0

Где-то, у вас есть фрагмент. Этот фрагмент не может быть создан в рамках структуры как часть воссоздания вашей деятельности. Либо:

  • Ваш фрагмент представляет собой внутренний класс (т.е. не обычный класс Java или static вложенный класс), или

  • Ваш фрагмент не public или

  • Ваш фрагмент не имеет нулевой аргумент public конструктору

+0

Да, но с другими устройствами он работает нормально nd i dnt хочет сделать слишком много жесткого кода для этой части, так что есть ли простой способ для этого? – Hardy

+0

@HBdroid: «но с другими устройствами он работает нормально» - нет, это не так. Вы столкнетесь с этим же сбоем при изменении конфигурации (вращение экрана, изменение локали и т. Д.). В этом случае вы сталкиваетесь с этим, потому что Android завершил процесс, когда он был в фоновом режиме, чтобы освободить оперативную память системы, но пользователь вернулся к выдающейся задаче. Это произойдет с помощью * lot * приложений камеры, которые вы еще не пробовали, и в других ситуациях (пользователь переключается на другое приложение в течение 15 минут, а затем возвращается в ваше приложение). – CommonsWare

+0

@HBdroid: Что касается исправления, это не только простой способ, но и единственный способ. – CommonsWare

2

Найдено ответ на моем собственном вот лучший пример, который он сам беспокоит устройство!

AndroidCameraUtils - Скачать проект и из библиотеки проекта, включая его ниже фрагмент кода вы можете использовать!

private void setupCameraIntentHelper() { 
    mCameraIntentHelper = new CameraIntentHelper(this, new CameraIntentHelperCallback() { 
     @Override 
     public void onPhotoUriFound(Date dateCameraIntentStarted, Uri photoUri, int rotateXDegrees) { 
      messageView.setText(getString(R.string.activity_camera_intent_photo_uri_found) + photoUri.toString()); 

      Bitmap photo = BitmapHelper.readBitmap(CameraIntentActivity.this, photoUri); 
      if (photo != null) { 
       photo = BitmapHelper.shrinkBitmap(photo, 300, rotateXDegrees); 
       ImageView imageView = (ImageView) findViewById(de.ecotastic.android.camerautil.sample.R.id.activity_camera_intent_image_view); 
       imageView.setImageBitmap(photo); 
      } 
     } 

     @Override 
     public void deletePhotoWithUri(Uri photoUri) { 
      BitmapHelper.deleteImageWithUriIfExists(photoUri, CameraIntentActivity.this); 
     } 

     @Override 
     public void onSdCardNotMounted() { 
      Toast.makeText(getApplicationContext(), getString(R.string.error_sd_card_not_mounted), Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onCanceled() { 
      Toast.makeText(getApplicationContext(), getString(R.string.warning_camera_intent_canceled), Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onCouldNotTakePhoto() { 
      Toast.makeText(getApplicationContext(), getString(R.string.error_could_not_take_photo), Toast.LENGTH_LONG).show(); 
     } 

     @Override 
     public void onPhotoUriNotFound() { 
      messageView.setText(getString(R.string.activity_camera_intent_photo_uri_not_found)); 
     } 

     @Override 
     public void logException(Exception e) { 
      Toast.makeText(getApplicationContext(), getString(R.string.error_sth_went_wrong), Toast.LENGTH_LONG).show(); 
      Log.d(getClass().getName(), e.getMessage()); 
     } 
    }); 
} 

@Override 
protected void onSaveInstanceState(Bundle savedInstanceState) { 
    super.onSaveInstanceState(savedInstanceState); 
    mCameraIntentHelper.onSaveInstanceState(savedInstanceState); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    mCameraIntentHelper.onRestoreInstanceState(savedInstanceState); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    mCameraIntentHelper.onActivityResult(requestCode, resultCode, intent); 
} 
} 
  • Добавить ниже подкладку явить файл вашей деятельности android:configChanges="keyboardHidden|orientation|screenSize"

Примечания: - Я пробовал много примеров для утилитов камеры и, конечно, есть еще способы обработки его, но и для начинающих, так и человек, который не слишком много familier с основными понятиями, будет больше комфорта с этим проектом. Благодаря!

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