Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.FileNotFoundException,即使imageView可以显示pic_Java_Android_Image_Mobile_Stream - Fatal编程技术网

java.io.FileNotFoundException,即使imageView可以显示pic

java.io.FileNotFoundException,即使imageView可以显示pic,java,android,image,mobile,stream,Java,Android,Image,Mobile,Stream,我正试图通过POST请求将用户选择的图片发送到我的web服务器。所以我需要在Base64中对我的pic进行编码,但我有一个问题,就是logcat返回了一个FileNotFoundException,我不明白: Unable to decode stream: java.io.FileNotFoundException 以下是我的onActivityResult: protected void onActivityResult(int requestCode, int resultCode,

我正试图通过POST请求将用户选择的图片发送到我的web服务器。所以我需要在Base64中对我的pic进行编码,但我有一个问题,就是logcat返回了一个FileNotFoundException,我不明白:

Unable to decode stream: java.io.FileNotFoundException
以下是我的onActivityResult:

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {

        final Uri selectedImage = data.getData();
        String[] filePathColumn = {MediaStore.Images.Media.DATA};
        Log.d("Toast", filePathColumn[1]);
        Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        cursor.close();
        imgViewScan.setImageURI(selectedImage);
        try
        {
            InputStream stream = getContentResolver().openInputStream(
                    data.getData());
            Bitmap bm = BitmapFactory.decodeStream(stream);
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
            //Bitmap bm = BitmapFactory.decodeFile(selectedImage.toString(),options);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
            byte[] b = baos.toByteArray();
            String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
            new EnvoiPhotoTask().execute(encodedImage);
        } catch(IOException e)
        {
            Log.e("ScanAc", e.toString());
        }


    }
}
这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.partenaires.legimetrie.legimetrieapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".InscriptionActivity" />
    <activity android:name=".ConnexionActivity" />
    <activity android:name=".ServicesActivity" />
    <activity android:name=".InterventionRapideActivity" />
    <activity android:name=".InterventionDetailleeActivity" />
    <activity android:name=".ScanActivity" />
    <activity android:name=".ContactActivity"></activity>
</application>
从4天前开始,我就绝望了……

我发现了哪里出了问题(很明显,除了x之外,我还有其他问题) 所以我使用的问题

InputStream stream = getContentResolver().openInputStream(
                data.getData());
但我已经做到了:

final Uri selectedImage = data.getData();
但是你无法获得两次数据,所以我只是:

InputStream stream = getContentResolver().openInputStream(
                selectedImage);

一切顺利

光标
字符串图片路径
。您没有使用picturePath。这很好。所以请删除所有代码。谢谢,但它并没有回答我的问题:pOf当然不是。你不必这么说。你应该先发布干净的代码。你试过了吗?
InputStream stream = getContentResolver().openInputStream(
                selectedImage);