여기에서 잘못된 것인지 알아 내려고합니다. 사용자가 프로필 사진을 업로드 할 수있는 양식을 만들고 있습니다. 버튼을 클릭하면 Android 갤러리로 이동하지만 (사용자가 바로 그 자리에서 사진을 찍을 수 있습니다) 사진이 선택되면 앱이 충돌하는 이유는 알 수 없지만 오류가 줄을 가리키는 것 같습니다. getRealPathFromURI (currImageURI)에 대한 아래 방법 다른 솔루션을 검색해 보았지만이 작업을 수행하는 방법에 대한 동일한 응답을 표시하는 것 같습니다 ... 이와 같이 URI http://monstercoda.wordpress.com 에서 전체 파일 경로를 가져 오는 방법 / 2012 / 04 / 15 / android-image-upload-tutorial-part-i /
코드:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK) {
if(requestCode == 1) {
Uri currImageURI = data.getData();
Log.d("The path","Current image path is ---->" + getRealPathFromURI(currImageURI));
TextView tv_path = (TextView) findViewById(R.id.path);
tv_path.setText(getRealPathFromURI(currImageURI));
}
}
}
public String getRealPathFromURI(Uri contentUri) {
String res = null;
String[] proj={MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(contentUri,proj, null, null, null);
if(cursor.moveToFirst()) {
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
res = cursor.getString(column_index);
}
cursor.close();
return res;
}
오류:
12-22 16:25:38.894: E/AndroidRuntime(19577): FATAL EXCEPTION: main
12-22 16:25:38.894: E/AndroidRuntime(19577): Process: com.fslio, PID: 19577
12-22 16:25:38.894: E/AndroidRuntime(19577): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.google.android.apps.docs.storage/document/acc=1;doc=172 flg=0x1 }} to activity {com.fslio/com.fslio.wardrobe}: java.lang.IllegalArgumentException: Unknown column requested: _data
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.ActivityThread.deliverResults(ActivityThread.java:3346)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3389)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.ActivityThread.access$1200(ActivityThread.java:135)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1445)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.os.Handler.dispatchMessage(Handler.java:102)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.os.Looper.loop(Looper.java:137)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.ActivityThread.main(ActivityThread.java:4998)
12-22 16:25:38.894: E/AndroidRuntime(19577): at java.lang.reflect.Method.invokeNative(Native Method)
12-22 16:25:38.894: E/AndroidRuntime(19577): at java.lang.reflect.Method.invoke(Method.java:515)
12-22 16:25:38.894: E/AndroidRuntime(19577): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-22 16:25:38.894: E/AndroidRuntime(19577): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-22 16:25:38.894: E/AndroidRuntime(19577): at dalvik.system.NativeStart.main(Native Method)
12-22 16:25:38.894: E/AndroidRuntime(19577): Caused by: java.lang.IllegalArgumentException: Unknown column requested: _data
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.content.ContentProviderProxy.query(ContentProviderNative.java:413)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.content.ContentResolver.query(ContentResolver.java:461)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.content.ContentResolver.query(ContentResolver.java:404)
12-22 16:25:38.894: E/AndroidRuntime(19577): at com.fslio.wardrobe.getRealPathFromURI(wardrobe.java:80)
12-22 16:25:38.894: E/AndroidRuntime(19577): at com.fslio.wardrobe.onActivityResult(wardrobe.java:67)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.Activity.dispatchActivityResult(Activity.java:5435)
12-22 16:25:38.894: E/AndroidRuntime(19577): at android.app.ActivityThread.deliverResults(ActivityThread.java:3342)
12-22 16:25:38.894: E/AndroidRuntime(19577): ... 11 more
예, 문제는에 있습니다 getRealPathFromURI inside the onActivityResult
.
오류는입니다.
Caused by: java.lang.IllegalArgumentException: Unknown column requested: _data
com.fslio.wardrobe.getRealPathFromURI(wardrobe.java:80)
com.fslio.wardrobe.onActivityResult(wardrobe.java:67)
이미지를 선택하는 동안 데이터에서 문제가 발생하는 코드를 디버그하십시오.
자세한 내용은 이 참조 링크를 확인 하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다