Я написал приложение, которое должно сделать снимок, а затем отобразить его на экране для внесения изменений. При попытке использовать эмулятор eclipse камера не работает, поэтому я пытаюсь использовать ее на смартфоне Galaxy Nexus Smart.Application Crash при использовании CAMERA - Android
Тем не менее, при запуске на моем SP приложение будет разбиваться, сказав, что it unfortunally stopped working
.
При выполнении приложения этого является то, что именно происходит:
- я нажимаю на кнопку камеры и интерфейс камеры получает открыт
- После съемки он дает мне выбор, чтобы отказаться от него или открыть его
- Если я нажимаю на отбрасывать приложение возвращает к нормальному использованию
- Если я нажимаю на открытых аварий приложений, как упоминалось выше
Я гугл немного и обнаружил, что вам нужно разрешение на использование аппаратных устройств check here, поэтому я создал файл /etc/udev/rules.d/51-android.rules
и это его содержание:
SUBSYSTEM == «USB», ATTR {IDVENDOR} == "18d1", MODE = "0666", GROUP = "plugdev" SUBSYSTEM == "USB", ATTR {IDVENDOR} == "04e8", MODE = "0666", GROUP = "plugdev" SUBSYSTEM == "USB ", ATTR {IDVENDOR} ==" 0bb4 ", MODE =" 0666, "GROUP =" plugdev "
Но все-таки я не смогу использовать камеру.
Вот разрешения я объявляемые в моем файле манифеста:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
Вот код, который я использую для запуска намерения камеры:
//create new Intent
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//get something back from the activity we are starting
startActivityForResult(cameraIntent, CAMERA_PICTURE_REQUEST);
И это код для обработки результата :
public void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent)
{
if(resultCode == RESULT_OK)
{
if(requestCode == GALLERY_PICTURE_REQUEST)
{
selectedImageUri = imageReturnedIntent.getData();
Log.d(TAG, selectedImageUri);
Intent intent = new Intent(DVAHLUI_SuperviseActivity.this, DVAHLUI_SelectImageContentActivity.class);
intent.setData(selectedImageUri);
startActivity(intent);
}
if(requestCode == CAMERA_PICTURE_REQUEST)
{
selectedImageUri = imageReturnedIntent.getData();
Log.d(TAG, selectedImageUri);
Intent intent = new Intent(DVAHLUI_SuperviseActivity.this, DVAHLUI_SelectImageContentActivity.class);
intent.setData(selectedImageUri);
startActivity(intent);
}
}
}
Это функция getPath(), вызывающая исключение указателя Java Null:
public String getPath(Uri uri)
{
String[] filePathColumn = { android.provider.MediaStore.Images.Media.DATA };
LINE 343 --> Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndexOrThrow(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
return filePath;
}
Не могли бы вы рассказать мне, что случилось?
FOGOT TO POST LogCat:
E/AndroidRuntime(27859): FATAL EXCEPTION: main
E/AndroidRuntime(27859): java.lang.RuntimeException: Failure delivering result ResultInfo{who=supervise, request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.DVA_HLUI/com.DVA_HLUI.DVAHLUI_TabModeActivity}: java.lang.NullPointerException
E/AndroidRuntime(27859): at android.app.ActivityThread.deliverResults(ActivityThread.java:3141)
E/AndroidRuntime(27859): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3184)
E/AndroidRuntime(27859): at android.app.ActivityThread.access$1100(ActivityThread.java:130)
E/AndroidRuntime(27859): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1243)
E/AndroidRuntime(27859): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(27859): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(27859): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime(27859): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27859): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(27859): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime(27859): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime(27859): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(27859): Caused by: java.lang.NullPointerException
E/AndroidRuntime(27859): at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1094)
E/AndroidRuntime(27859): at android.content.ContentResolver.query(ContentResolver.java:354)
E/AndroidRuntime(27859): at android.content.ContentResolver.query(ContentResolver.java:313)
E/AndroidRuntime(27859): at com.DVA_HLUI.DVAHLUI_SuperviseActivity.getPath(DVAHLUI_SuperviseActivity.java:343)
E/AndroidRuntime(27859): at com.DVA_HLUI.DVAHLUI_SuperviseActivity.onActivityResult(DVAHLUI_SuperviseActivity.java:312)
E/AndroidRuntime(27859): at android.app.ActivityGroup.dispatchActivityResult(ActivityGroup.java:122)
E/AndroidRuntime(27859): at android.app.ActivityThread.deliverResults(ActivityThread.java:3137)
E/AndroidRuntime(27859): ... 11 more
, что это LogCat говоря о проблеме –
@SharathG - нашли что-то интересное, это кажется, что это функция getPath(), вызывающая исключение нулевого указателя java ... можете ли вы мне помочь? thks заранее – Matteo
как-то проверить, имеет ли значение uri значение или нет. Я думаю, что uri doesnot имеет путь, который вызывает nullpointer –