После выбора файла в хранилище появляется ошибка: приложение остановлено. Как я могу это исправить?
Logcat
2021-05-09 04:04:44.933 4940-4940/com.fbelij.image_editor E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.fbelij.image_editor, PID: 4940
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=Intent { dat=content://com.google.android.apps.photos.contentprovider/-1/1/content://media/external/file/55/ORIGINAL/NONE/346064549 flg=0x1 clip={text/uri-list U:content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Ffile%2F55/ORIGINAL/NONE/346064549} }} to activity {com.fbelij.image_editor/com.fbelij.image_editor.MainActivity}: java.lang.IllegalArgumentException: Unknown color
at android.app.ActivityThread.deliverResults(ActivityThread.java:4053)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.IllegalArgumentException: Unknown color
at android.graphics.Color.parseColor(Color.java:163)
at com.fbelij.image_editor.MainActivity.onActivityResult(MainActivity.java:122)
at android.app.Activity.dispatchActivityResult(Activity.java:6915)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4049)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
MainActivity.java
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.dsphotoeditor.sdk.activity.DsPhotoEditorActivity;
import com.dsphotoeditor.sdk.utils.DsPhotoEditorConstants;
public class MainActivity extends AppCompatActivity {
//Initialize variable
Button btPick;
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Assign variable
btPick = findViewById(R.id.bt_pick);
imageView = findViewById(R.id.image_view);
btPick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Create method
checkPermission();
}
});
}
private void checkPermission() {
//Initialize permission
int permission = ActivityCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE);
//Check condition
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
//When device version is greater than equal to version 10
//Create method
pickImage();
}else {
//When device version is below version 10
//Check condition
if(permission != PackageManager.PERMISSION_GRANTED){
//When permission is not granted
//Request permission
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
100);
}else {
//When permission is granted
//Call method
pickImage();
}
}
}
private void pickImage() {
//Initialize intent
Intent intent = new Intent(Intent.ACTION_PICK);
//Set type
intent.setType("image/*");
//Start activity for result
startActivityForResult(intent,100);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//Check condition
if (requestCode == 100 && grantResults.length>0 && grantResults[0]
== PackageManager.PERMISSION_GRANTED){
//When permission is granted
//Call method
pickImage();
}else {
//When permission is denied
//Display toast
Toast.makeText(getApplicationContext(),
"Permission Denied.",Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Check condition
if (resultCode == RESULT_OK){
//When result is ok
//Initialize uri
Uri uri = data.getData();
switch (requestCode){
case 100:
//When request code is equal to 100
//Initialize intent
Intent intent = new Intent(MainActivity.this,
DsPhotoEditorActivity.class);
//Set data
intent.setData(uri);
//Set output directory name
intent.putExtra(DsPhotoEditorConstants.DS_PHOTO_EDITOR_OUTPUT_DIRECTORY,
"Images");
//Set toolbar color
intent.putExtra(DsPhotoEditorConstants.DS_TOOL_BAR_BACKGROUND_COLOR,
Color.parseColor("#FF6200"));
//Set backgroud color
intent.putExtra(DsPhotoEditorConstants.DS_MAIN_BACKGROUND_COLOR,
Color.parseColor("FFFFFF"));
//Hide tools
intent.putExtra(DsPhotoEditorConstants.DS_PHOTO_EDITOR_TOOLS_TO_HIDE,
new int[]{DsPhotoEditorActivity.TOOL_WARMTH,
DsPhotoEditorActivity.TOOL_PIXELATE});
//Start activity for result
startActivityForResult(intent,101);
break;
case 101:
//When request is equal to 100
//Set image on image view
imageView.setImageURI(uri);
//Display toast
Toast.makeText(getApplicationContext(),
"Photo saved",Toast.LENGTH_SHORT).show();
break;
}
}
}
}
