java.lang.IllegalArgumentException: invalid type for value: class android.graphics.Bitmap

6 浏览
0 Comments

java.lang.IllegalArgumentException: invalid type for value: class android.graphics.Bitmap

你好,我正在向parse平台添加一个位图文件,但是在开始时遇到了一些问题,一开始它能正常工作,但在第二次或第三次尝试后就出问题了。我猜这是因为put方法不能接收位图。但我不知道为什么它在一开始能正常工作,然后停止工作。\n这是我的代码...\n

    package com.example.mac.mycarapp.UI;
import android.support.v7.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.support.v7.widget.Toolbar;
import com.example.mac.mycarapp.Adapter.DatosCompletosOtroAdapterSearch;
import com.example.mac.mycarapp.Adapter.RecyclerTouchListener;
import com.example.mac.mycarapp.LoginActivity;
import com.example.mac.mycarapp.Modelos.Ciudad;
import com.example.mac.mycarapp.R;
import com.example.mac.mycarapp.Util.Config;
import com.example.mac.mycarapp.Util.MarshMallowPermission;
import com.parse.FindCallback;
import com.parse.GetCallback;
import com.parse.GetDataCallback;
import com.parse.ParseException;
import com.parse.ParseFile;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;
import com.parse.SaveCallback;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import de.hdodenhof.circleimageview.CircleImageView;
public class DatosCompletosClienteOtro extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
    @BindView(R.id.imagen_por_tipo_de_empresa)
    ImageView imagenPorTipoDeEmpresa;
    @BindView(R.id.circleImageView3)
    CircleImageView circleImageView3;
    @BindView(R.id.inscripcion_nombre_cliente_otro)
    EditText inscripcionNombreClienteOtro;
    @BindView(R.id.inscripcion_cedula_cliente_otro)
    EditText inscripcionCedulaClienteOtro;
    @BindView(R.id.inscripcion_correo_cliente_otro)
    EditText inscripcionCorreoClienteOtro;
    @BindView(R.id.inscripcion_telefono_cliente_otro)
    EditText inscripcionTelefonoClienteOtro;
    @BindView(R.id.inscripcion_direccion_cliente_otro)
    EditText inscripcionDireccionClienteOtro;
    @BindView(R.id.inscripcion_ciudad_cliente_otro)
    Spinner inscripcionCiudadClienteOtro;
    @BindView(R.id.boton_seleccion_automotriz_otro)
    Button botonSeleccionAutomotriz;
    @BindView(R.id.boton_seleccion_inmobiliaria_otro)
    Button botonSeleccionInmobiliaria;
    @BindView(R.id.datos_completos_usuario_seleccion_empresa)
    TextView datosCompletosUsuarioSeleccionEmpresa;
    @BindView(R.id.datos_completos_buscar_empresa_por_sector)
    SearchView datosCompletosBuscarEmpresaPorSector;
    @BindView(R.id.recyclerview_relacion_escoge_empresa)
    RecyclerView recyclerviewRelacionEscogeEmpresa;
    @BindView(R.id.scrollView2)
    ScrollView scrollView2;
    ParseUser user;
    @BindView(R.id.boton_guardar_usuario_otro)
    Button botonGuardarUsuarioOtro;
    private ArrayList listCiudad;
    private List ciudadList;
    private Ciudad ciudadSelect;
    String stringTipoDeEmpresa;
    private ArrayList listaEmpresa;
    DatosCompletosOtroAdapterSearch adapter;
    Context context = DatosCompletosClienteOtro.this;
    AlertDialog pd;
    String empresaObjectId;
    String tipoDeEmpAuto = "Automotriz";
    String tipoDeEmpInmo = "Inmobiliaria";
    Uri imageUrl;
    int CAMERA = 0;
    int GALLERY = 1;
    private MarshMallowPermission mmp;
    String ciudadId;
    String referentCiudad="null";
    String spinnerValue;
    public static final int REQUEST_IMAGE=100;
    public static final int REQUEST_GALLERY=101;
    Bitmap bitmap;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.datos_completos_usuario_inmobiliaria);
        ButterKnife.bind(this);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        mmp = new MarshMallowPermission(this);
        listCiudad = new ArrayList();
        ciudadList = new ArrayList();
        listaEmpresa = new ArrayList();
        AlertDialog.Builder db = new AlertDialog.Builder(this);
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View dialogView = inflater.inflate(R.layout.alert_inicial_uno, null);
        db.setView(dialogView);
        db.setCancelable(true);
        db.setPositiveButton("Siguiente", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                pd.dismiss();
            }
        });
        pd = db.create();
        pd.show();
        showUserDetailsIfInDatabase();
        user = ParseUser.getCurrentUser();
        //Todo:LLenar spinner con ciudades
        inscripcionCiudadClienteOtro.setOnItemSelectedListener(this);
        datosCompletosBuscarEmpresaPorSector.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String s) {
                return false;
            }
            @Override
            public boolean onQueryTextChange(String s) {
                adapter.getFilter().filter(s);
                return true;
            }
        });
        circleImageView3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openOptionPhotografy();
            }
        });
        recyclerviewRelacionEscogeEmpresa.addOnItemTouchListener(new RecyclerTouchListener(getApplicationContext(), recyclerviewRelacionEscogeEmpresa, new RecyclerTouchListener.ClickListener() {
            @Override
            public void onClick(View view, int position) {
                ParseObject item = listaEmpresa.get(position);
                String empresaSeleccion = item.getString("Nombre");
                empresaObjectId = item.getObjectId();
                user = ParseUser.getCurrentUser();
                user.put("Empresa", ParseObject.createWithoutData("Empresa", empresaObjectId));
            }
            @Override
            public void onLongClick(View view, int position) {
            }
        }));
        botonSeleccionAutomotriz.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                datosCompletosUsuarioSeleccionEmpresa.setText("");
                datosCompletosUsuarioSeleccionEmpresa.setText(tipoDeEmpAuto);
//                ParseQuery query = ParseQuery.getQuery("Empresa");
//
//                // Retrieve the object by id
//                query.getInBackground(empresaObjectId, new GetCallback() {
//                    public void done(ParseObject entity, ParseException e) {
//                        if (e == null) {
//                            // Update the fields we want to
//                            entity.put("tipoDeEmpresa", tipoDeEmpAuto);
//                        }
//                    }
//                });
                stringTipoDeEmpresa = datosCompletosUsuarioSeleccionEmpresa.getText().toString().trim();
                queryListadoDeEmpresas(stringTipoDeEmpresa);
            }
        });
        botonSeleccionInmobiliaria.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                datosCompletosUsuarioSeleccionEmpresa.setText("");
                datosCompletosUsuarioSeleccionEmpresa.setText(tipoDeEmpInmo);
//                ParseQuery query = ParseQuery.getQuery("Empresa");
//
//                // Retrieve the object by id
//                query.getInBackground(empresaObjectId, new GetCallback() {
//                    public void done(ParseObject entity, ParseException e) {
//                        if (e == null) {
//                            // Update the fields we want to
//                            entity.put("tipoDeEmpresa", tipoDeEmpInmo);
//                        }
//                    }
//                });
                stringTipoDeEmpresa = datosCompletosUsuarioSeleccionEmpresa.getText().toString().trim();
                queryListadoDeEmpresas(stringTipoDeEmpresa);
            }
        });
        botonGuardarUsuarioOtro.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                updateProfileUser();
                Intent intent=new Intent(DatosCompletosClienteOtro.this,MainActivity.class);
                startActivity(intent);
            }
        });
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Intent myIntent = new Intent(getApplicationContext(), LoginActivity.class);
        startActivityForResult(myIntent,0);
        return true;
    }
    private void lleneCiudadCliente(final String parameter) {
        ParseQuery parseQuery = ParseQuery.getQuery("Ciudad");
        parseQuery.findInBackground(new FindCallback() {
            @Override
            public void done(List objects, ParseException e) {
                for (ParseObject ciudades : objects) {
                    Ciudad ciudad = new Ciudad(ciudades.getObjectId(), ciudades.getString("Ciudad"));
                    ciudadList.add(ciudad);
                    listCiudad.add(ciudades.getString("Nombre"));
                }
                ArrayAdapter adapter = new ArrayAdapter(DatosCompletosClienteOtro.this,
                        android.R.layout.simple_spinner_dropdown_item, listCiudad);
                inscripcionCiudadClienteOtro.setAdapter(adapter);
                if (!parameter.equals("null")) {
                    int selectionPosition = adapter.getPosition(parameter);
                    inscripcionCiudadClienteOtro.setSelection(selectionPosition);
                }
            }
        });
    }
    @Override
    public void onItemSelected(AdapterView adapterView, View view, int position, long id) {
      spinnerValue=   adapterView.getItemAtPosition(position).toString();
      String idValue= String.valueOf(adapterView.getSelectedItemId());
      String item= listCiudad.get(position);
        ciudadSelect = ciudadList.get(position);
                ciudadId=ciudadSelect.getId();
//        switch (adapterView.getId()) {
//            case R.id.inscripcion_ciudad_cliente:
//                ciudadSelect = ciudadList.get(position);
//                ciudadId=ciudadSelect.getId();
//                break;
//
//        }
    }
    @Override
    public void onNothingSelected(AdapterView parent) {
    }
    private void showUserDetailsIfInDatabase() {
        ParseUser parseUser = ParseUser.getCurrentUser();
        if (parseUser != null) {
            if (parseUser.getString("Nombre") != null) {
                inscripcionNombreClienteOtro.setText(parseUser.getString("Nombre"));
                Log.i("nombre:", parseUser.getString("Nombre"));
            }
            if(parseUser.getString("Cedula") != null) {
                inscripcionCedulaClienteOtro.setText(parseUser.getString("Cedula"));
            }
            if(parseUser.getEmail()!=null) {
                inscripcionCorreoClienteOtro.setText(parseUser.getEmail());
            }
            if(parseUser.getNumber("Telefono")!=null) {
                inscripcionTelefonoClienteOtro.setText(parseUser.getInt("Telefono") + "");
            }
            if(parseUser.getString("Direccion")!=null) {
                inscripcionDireccionClienteOtro.setText(parseUser.getString("Direccion"));
            }
            ParseQuery query = ParseUser.getQuery();
            query.whereEqualTo("objectId", ParseUser.getCurrentUser().getObjectId());
            query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
            query.include("Ciudad");
            query.include("Marca");
            query.findInBackground(new FindCallback() {
                public void done(final List objects, ParseException e) {
                    if (e == null) {
                        Log.d("Resultados ", "" + objects.size());
                        for (ParseObject pointer : objects) {
                            ParseObject ciudades = pointer.getParseObject("Ciudad");
                            if (ciudades != null) {
                                lleneCiudadCliente(ciudades.getString("Nombre"));
                            } else {
                                lleneCiudadCliente("null");
                            }
                        }
                    }
                }
            });
            ParseFile parseFile = parseUser.getParseFile("Avatar");
            if (parseFile != null) {
                parseFile.getDataInBackground(new GetDataCallback() {
                    @Override
                    public void done(byte[] data, ParseException e) {
                        if (e == null) {
                            Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
                            if (bmp != null) {
                                circleImageView3.setImageBitmap(bitmap);
                            }
                        }
                    }
                });
            }
        }
    }
    private void updateProfileUser() {
        if (datosCompletosUsuarioSeleccionEmpresa.getText().toString().matches("")
        ) {
            Config.simpleAlert("Porfavor seleccione un tipo de empresa", this);
        }
        if (inscripcionNombreClienteOtro.getText().toString().matches("") ||
                inscripcionCedulaClienteOtro.getText().toString().matches("") ||
                inscripcionTelefonoClienteOtro.getText().toString().matches("") ||
                inscripcionDireccionClienteOtro.getText().toString().matches("")
        ) {
            Config.simpleAlert("Debe ingresar sus datos de perfil", this);
        } else {
            Config.showDP("Guardando registros...", this);
            ParseUser currUser = ParseUser.getCurrentUser();
            currUser.put("Nombre", inscripcionNombreClienteOtro.getText().toString().trim());
            currUser.put("Cedula", inscripcionCedulaClienteOtro.getText().toString().trim());
            currUser.put("email", inscripcionCorreoClienteOtro.getText().toString().trim());
            currUser.put("Telefono", Integer.parseInt(inscripcionTelefonoClienteOtro.getText().toString().trim()));
            currUser.put("Direccion", inscripcionDireccionClienteOtro.getText().toString().trim());
            currUser.put("Ciudad", ParseObject.createWithoutData("Ciudad", ciudadId));
            currUser.saveInBackground();
//            Bitmap bitmap = ((BitmapDrawable) circleImageView3.getDrawable()).getBitmap();
//            Bitmap bm = Config.scaleBitmapToMaxSize(240, bitmap);
//            ByteArrayOutputStream stream = new ByteArrayOutputStream();
//            bm.compress(Bitmap.CompressFormat.JPEG, 100, stream);
//            byte[] bytesArray = stream.toByteArray();
//            ParseFile imageFile = new ParseFile("image.jpg", bytesArray);
//            currUser.put("Avatar", imageFile);
//            currUser.saveInBackground();
//            currUser.saveInBackground(new SaveCallback() {
//                @Override
//                public void done(ParseException e) {
//
//                    if (e == null) {
//
//                        Config.hidePD();
//                        Config.simpleAlert("Datos guardados correctamente", DatosCompletosClienteOtro.this);
//                    } else {
//                        Toast.makeText(DatosCompletosClienteOtro.this, e.getMessage(), Toast.LENGTH_SHORT).show();
//                        Config.hidePD();
//                    }
//                }
//            });
        }
    }
    private void queryListadoDeEmpresas(String stringTipoDeEmpresa) {
        ParseQuery query = ParseQuery.getQuery("Empresa");
        query.whereEqualTo("tipoDeEmpresa", stringTipoDeEmpresa);
        query.include("Ciudad");
        query.findInBackground(new FindCallback() {
            @Override
            public void done(List objects, ParseException e) {
                for (ParseObject obj : objects
                ) {
                    listaEmpresa.add(obj);
                }
                recyclerviewRelacionEscogeEmpresa.addItemDecoration(new DividerItemDecoration(getApplicationContext(),
                        LinearLayoutManager.VERTICAL));
                // Pass results to ListViewAdapter Class
                recyclerviewRelacionEscogeEmpresa.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
                adapter = new DatosCompletosOtroAdapterSearch(getBaseContext(), listaEmpresa);
                // Binds the Adapter to the ListView
                recyclerviewRelacionEscogeEmpresa.setAdapter(adapter);
                adapter.notifyDataSetChanged();
            }
        });
    }
    private void openOptionPhotografy() {
        android.support.v7.app.AlertDialog.Builder alert = new android.support.v7.app.AlertDialog.Builder(DatosCompletosClienteOtro.this);
        alert.setTitle("Seleccione una opción")
                .setIcon(R.mipmap.ic_launcher_round)
                .setItems(new CharSequence[]{"Tomar fotografía", "Seleccionar de galería"}, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int which) {
                        switch (which) {
                            case 0:
                                if (!mmp.checkPermissionForCamera()) {
                                    mmp.requestPermissionForCamera();
                                } else {
                                    openCameraIntent();
                                }
                                break;
                            case 1:
                                if (!mmp.checkPermissionForReadExternalStorage()) {
                                    mmp.requestPermissionForReadExternalStorage();
                                } else {
                                    openImageGallery();
                                }
                                break;
                        }
                    }
                })
                .setNegativeButton("Cancelar", null);
        alert.show();
    }
//    @Override
//    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//
//        if (resultCode == Activity.RESULT_OK) {
//            Bitmap bm = null;
//            //Image from camera
//            if (requestCode == CAMERA) {
//                try {
//                    bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUrl);
//
//
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//
//            } else if (requestCode == GALLERY) {
//                try {
//                    bm = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
//
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
//            //set image
//            circleImageView3.setImageBitmap(bm);
//            ParseUser currentUser = ParseUser.getCurrentUser();
//            if (currentUser != null) {
//                // Other attributes than "email" will remain unchanged!
//                currentUser.put("Avatar", bm);
//                currentUser.saveInBackground();
//                //mm
//            }
//        }
//    }
private void openCameraIntent(){
        Intent pictureIntent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if(pictureIntent.resolveActivity(getPackageManager())!=null){
            startActivityForResult(pictureIntent,REQUEST_IMAGE);
        }
}
private void openImageGallery(){
        Intent photoPickerIntent=new Intent(Intent.ACTION_PICK);
        File pictureDirectory=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        String picDirectoryPath=pictureDirectory.getPath();
        Uri data=Uri.parse(picDirectoryPath);
        photoPickerIntent.setDataAndType(data,"image/*");
        startActivityForResult(photoPickerIntent,REQUEST_GALLERY);
}
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode== REQUEST_IMAGE && resultCode==RESULT_OK){
            if(data!=null && data.getExtras()!=null ){
                bitmap=(Bitmap)data.getExtras().get("data");
                circleImageView3.setImageBitmap(bitmap);
                user.put("Avatar",bitmap);
                user.saveInBackground();
            }
        }
        if(requestCode==REQUEST_GALLERY && resultCode==RESULT_OK){
            Uri imageUri=data.getData();
            InputStream inputStream;
            try {
                inputStream=getContentResolver().openInputStream(imageUri);
                Bitmap image=BitmapFactory.decodeStream(inputStream);
                circleImageView3.setImageBitmap(image);
                user.put("Avatar",image);
                user.saveInBackground();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                Toast.makeText(this,"No fue posible abrir la imagen",Toast.LENGTH_LONG).show();
            }
        }
    }
}

\n问题出在这里:user.put(\"Avatar\",bitmap);\n这是错误代码...\n

  
2019-07-08 14:58:41.798 1734-27078/? E/OMXNodeInstance: getConfig(0xee426d80:google.vorbis.decoder, ConfigAndroidVendorExtension(0x6f100004)) ERROR: Undefined(0x80001001)
2019-07-08 14:58:41.988 30043-30043/com.example.mac.mycarapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mac.mycarapp, PID: 30043
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.example.mac.mycarapp/com.example.mac.mycarapp.UI.DatosCompletosClienteOtro}: java.lang.IllegalArgumentException: invalid type for value: class android.graphics.Bitmap
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4360)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.IllegalArgumentException: invalid type for value: class android.graphics.Bitmap
        at com.parse.ParseObject.performPut(ParseObject.java:3034)
        at com.parse.ParseObject.put(ParseObject.java:3013)
        at com.parse.ParseUser.put(ParseUser.java:814)
        at com.example.mac.mycarapp.UI.DatosCompletosClienteOtro.onActivityResult(DatosCompletosClienteOtro.java:564)
        at android.app.Activity.dispatchActivityResult(Activity.java:7454)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4353)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402) 
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
2019-07-08 14:58:42.209 1915-1999/system_process E/InputDispatcher: channel '53feb7f com.example.mac.mycarapp/com.example.mac.mycarapp.UI.DatosCompletosClienteOtro (server)' ~ Channel is unrecoverably broken and will be disposed!

\n那么我该怎么办?请帮帮我...

0
0 Comments

在代码中,出现了"java.lang.IllegalArgumentException: invalid type for value: class android.graphics.Bitmap"这个异常。这个异常通常出现在尝试保存一个位图(Bitmap)对象时。

出现这个异常的原因是,代码中尝试将位图对象保存到文件中,而不是保存文件本身。这是因为在代码中,开发者注释掉了保存文件的代码,而不小心保存了位图对象。

要解决这个问题,需要将注释掉的保存文件的代码恢复,并删除保存位图对象的代码。这样,就能正确地将文件保存到指定位置。

下面是一种可能的解决方法:

// 保存文件的代码
File file = new File("/path/to/save/image.jpg");
try {
    FileOutputStream fos = new FileOutputStream(file);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
    fos.flush();
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}

通过恢复保存文件的代码,并删除保存位图对象的代码,就能解决"java.lang.IllegalArgumentException: invalid type for value: class android.graphics.Bitmap"这个异常。这样,就能正确地将文件保存到指定位置,而不会再出现异常。

0
0 Comments

这个问题的出现是因为在使用parseplatform的ParseUser类的put方法存储数据时,不能直接存储Bitmap类型的数据。解决方法是将Bitmap存储到文件系统中,然后将文件路径存储到ParseUser对象中。当需要显示图片时,通过获取文件路径,从存储中读取图片。

可以使用以下代码将Bitmap转换为byte数组:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 80, stream);
byte[] byteArray = stream.toByteArray();

然后,按照提供的链接中的方式,将byte数组存储为ParseFile对象,再将ParseFile对象存储到ParseUser中。

至于你提到的CircleImageView显示问题,我不清楚具体原因。

0