Я пытаюсь смонтировать обрезанное изображение, метод, с которого оно запускается, во фрагменте, который через интерфейс соединяется с действием и запускает его, это метод sendToGallery (FirebaseAuth firebaseAuth) и поместить его в круг Просмотр изображения, однако я пропускаю это исключение:
E/NetworkRqFactoryProxy: NetworkRequestFactoryProxy failed with a RemoteException:
com.google.android.gms.dynamite.DynamiteModule$zzc: Remote load failed. No local fallback found.
at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source)
at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.zzs.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: com.google.android.gms.dynamite.DynamiteModule$zzc: Failed to get module context
at com.google.android.gms.dynamite.DynamiteModule.zzc(Unknown Source)
at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source)
at com.google.android.gms.dynamite.DynamiteModule.zza(Unknown Source)
at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.zzs.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
E/UploadTask: Unable to create a network request from metadata
android.os.RemoteException
at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.zzs.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
E/StorageException: StorageException has occurred.
An unknown error occurred, please check the HTTP result code and inner exception for server response.
Code: -13000 HttpResult: 0
E/StorageException: null
android.os.RemoteException
at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.zzs.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
E/StorageException: StorageException has occurred.
An unknown error occurred, please check the HTTP result code and inner exception for server response.
Code: -13000 HttpResult: 0
E/StorageException: null
android.os.RemoteException
at com.google.android.gms.internal.zzeyb.<init>(Unknown Source)
at com.google.android.gms.internal.zzeyb.zzi(Unknown Source)
at com.google.firebase.storage.StorageReference.zzclq(Unknown Source)
at com.google.firebase.storage.UploadTask.run(Unknown Source)
at com.google.firebase.storage.zzs.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Насколько я мог прочитать (так как я новичок в этом Firebase, фактически я использую его впервые), это связано с проблемами с разрешениями или с версиями сервисов Google Play. Однако мой телефон в последней версии (6 сентября 2008 г.). У меня есть 2 необходимых разрешения, которые я понимаю, это Интернет и внешнее чтение, и я добавил удаленный доступ (<uses-permission android: name = "android.permission.ACCESS_NETWORK_STATE" / >
). я
также включить правила как общедоступные, но у меня все еще есть проблема. Я не знаю, что еще делать, я добавляю код:
public class MainActivity extends AppCompatActivity{NavigationView navigationView;
DrawerLayout drawerLayout;
Toolbar toolbar;
FirebaseAuth firebaseAuth;
private ProgressDialog loadingBar;
private StorageReference storageReference;
DatabaseReference databaseReference;
FirebaseAuth firebaseAuthPhtoto;
String currentUserID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navigationView= findViewById(R.id.navigation_view);
drawerLayout= findViewById(R.id.drawerLayout);
toolbar= findViewById(R.id.toolbar);
firebaseAuth= FirebaseAuth.getInstance();
storageReference= FirebaseStorage.getInstance().getReference().child("Profile_Images");
FirebaseStorage.getInstance().setMaxUploadRetryTimeMillis(2000);
loadingBar= new ProgressDialog(this);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_view_stream_white_24dp);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
sendFragment(new loginFragment(),"Login user" );
//: if request.auth != null
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case(R.id.add_state):
sendFragment(null, (String) item.getTitle());
return true;
case(R.id.profile):
return true;
case(R.id.home):
return true;
case(R.id.friend):
return true;
case(R.id.find_friend):
return true;
case(R.id.settings):
return true;
case(R.id.logout):
firebaseAuth.signOut();
sendFragment(new loginFragment(),"Login user" );
return true;
}
return false;
}
});
}
@Override
protected void onStart() {
super.onStart();
FirebaseUser firebaseUser= firebaseAuth.getCurrentUser();
if (firebaseUser==null){
sendFragment(new loginFragment(),"Login user" );
}
}
public void sendToGallery(FirebaseAuth firebaseAuth) {
firebaseAuthPhtoto= firebaseAuth;
databaseReference= FirebaseDatabase.getInstance().getReference().child("Users").child(firebaseAuthPhtoto.getCurrentUser().getUid());
currentUserID=firebaseAuthPhtoto.getCurrentUser().getUid();
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 1);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1 && resultCode==RESULT_OK && data!=null){
Uri image= data.getData();
CropImage.activity()
.setGuidelines(CropImageView.Guidelines.ON)
.setAspectRatio(1, 1)
.start(this);
}
if (requestCode==CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE){
CropImage.ActivityResult result= CropImage.getActivityResult(data);
if (resultCode == RESULT_OK){
loadingBar.setTitle("Profile Image");
loadingBar.setMessage("Please wait, while we updating your profile image...");
loadingBar.show();
loadingBar.setCanceledOnTouchOutside(true);
Uri resultUri= result.getUri();
StorageReference storageReferenceImage= storageReference.child(currentUserID + ".jpg");
storageReferenceImage.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
if(task.isSuccessful()){
loadingBar.dismiss();
Toast.makeText(MainActivity.this, "Profile Image stored successfully to Firebase storage...", Toast.LENGTH_SHORT).show();
final String downloadUrl = task.getResult().getDownloadUrl().toString();
databaseReference.child("profileimage").setValue(downloadUrl)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "Profile Image stored to Firebase Database Successfully...", Toast.LENGTH_SHORT).show();
SendToSettingFragment();
} else {
String message = task.getException().getMessage();
Log.v("------------------",message);
Toast.makeText(MainActivity.this, "Error Occured: " + message, Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
}
}
});
}else{
String message = task.getException().getMessage();
Log.v("------------Any--------",message);
Toast.makeText(MainActivity.this, "Error Occured: " + message, Toast.LENGTH_LONG).show();
loadingBar.dismiss();
}
}
});
}
}
}