无法将pdf文件上传到Firebase存储 从设备中选择pdf文件后,我收到此消息,并且该文件未存储在Firebase存储器中。 我认为以下给出的消息不是错误;
2020-07-24 02:19:29.170 26041-26041/? I/k.codingeradmi: Late-enabling -Xcheck:jni
2020-07-24 02:19:29.722 26041-26041/com.mk.codingeradmin I/Perf: Connecting to perf service.
2020-07-24 02:19:29.786 26041-26066/com.mk.codingeradmin W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-07-24 02:19:29.793 26041-26041/com.mk.codingeradmin D/FirebaseApp: com.google.firebase.iid.FirebaseInstanceId is not linked. Skipping initialization.
2020-07-24 02:19:29.794 26041-26041/com.mk.codingeradmin D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
2020-07-24 02:19:29.795 26041-26041/com.mk.codingeradmin D/FirebaseApp: com.google.android.gms.measurement.AppMeasurement is not linked. Skipping initialization.
2020-07-24 02:19:29.795 26041-26041/com.mk.codingeradmin I/FirebaseInitProvider: FirebaseApp initialization successful
2020-07-24 02:19:29.823 26041-26069/com.mk.codingeradmin W/DynamiteModule: Local module descriptor class for com.google.firebase.auth not found.
2020-07-24 02:19:29.835 26041-26069/com.mk.codingeradmin I/FirebaseAuth: [FirebaseAuth:] Loading module via FirebaseOptions.
2020-07-24 02:19:29.835 26041-26069/com.mk.codingeradmin I/FirebaseAuth: [FirebaseAuth:] Preparing to create service connection to gms implementation
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets; (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking)
2020-07-24 02:19:29.908 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking)
2020-07-24 02:19:30.040 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2020-07-24 02:19:30.045 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2020-07-24 02:19:30.058 26041-26041/com.mk.codingeradmin W/k.codingeradmi: Accessing hidden method Landroid/widget/TextView;->getTextDirectionHeuristic()Landroid/text/TextDirectionHeuristic; (light greylist, linking)
2020-07-24 02:19:30.145 26041-26041/com.mk.codingeradmin W/Looper: Slow Looper: Activity com.mk.codingeradmin/.MainActivity is 389ms late (wall=343ms running=0ms ClientTransaction{ callbacks=[android.app.servertransaction.LaunchActivityItem] lifecycleRequest=android.app.servertransaction.ResumeActivityItem }) because of 1 msg, msg 1 took 525ms (late=1ms h=android.app.ActivityThread$H w=110)
2020-07-24 02:19:30.201 26041-26071/com.mk.codingeradmin I/Adreno: QUALCOMM build : 4e21c4c, I21281c58c8
Build Date : 03/01/19
OpenGL ES Shader Compiler Version: EV031.25.03.02
Local Branch :
Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.7.5.R1.09.00.00.464.039
Remote Branch : NONE
Reconstruct Branch : NOTHING
2020-07-24 02:19:30.201 26041-26071/com.mk.codingeradmin I/Adreno: Build Config : S L 6.0.7 AArch32
2020-07-24 02:19:30.207 26041-26071/com.mk.codingeradmin I/Adreno: PFP: 0x005ff110, ME: 0x005ff066
2020-07-24 02:19:30.211 26041-26071/com.mk.codingeradmin I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2020-07-24 02:19:30.211 26041-26071/com.mk.codingeradmin I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
2020-07-24 02:19:30.212 26041-26071/com.mk.codingeradmin I/OpenGLRenderer: Initialized EGL, version 1.4
2020-07-24 02:19:30.212 26041-26071/com.mk.codingeradmin D/OpenGLRenderer: Swap behavior 2
2020-07-24 02:19:59.634 26041-26041/com.mk.codingeradmin V/ActivityThread: handleTrimMemory:com.mk.codingeradmin
我不明白我的代码会发生什么
activity_code_upload.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
tools:context="com.mk.codingeradmin.CodeUploadActivity">
<Spinner
android:id="@+id/spinner"
android:layout_centerVertical="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<EditText
android:layout_below="@+id/spinner"
android:id="@+id/editTextFileName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter a name for your file"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large" />
<Button
android:id="@+id/buttonUploadFile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/editTextFileName"
android:text="Upload PDF" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<ProgressBar
android:id="@+id/progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:visibility="gone" />
<TextView
android:id="@+id/textViewStatus"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="No file selected"
android:textAlignment="center"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large" />
<TextView
android:id="@+id/textViewUploads"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="View Uploads"
android:textAlignment="center"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Large"
android:textColor="@color/colorPrimaryDark" />
</LinearLayout>
</RelativeLayout>
CodeUploadActivity.java
package com.mk.codingeradmin;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.OnProgressListener;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;
import java.util.ArrayList;
import java.util.List;
public class CodeUploadActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
final static int PICK_PDF_CODE = 2342;
//these are the views
TextView textViewStatus;
EditText editTextFilename;
ProgressBar progressBar;
Spinner spinner;
// Firebase reference
StorageReference mStorageReference;
DatabaseReference mDatabaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_code_upload);
textViewStatus = findViewById(R.id.textViewStatus);
editTextFilename = findViewById(R.id.editTextFileName);
progressBar =findViewById(R.id.progressbar);
spinner=findViewById(R.id.spinner);
findViewById(R.id.buttonUploadFile).setOnClickListener(this);
findViewById(R.id.textViewUploads).setOnClickListener(this);
List<String> categories=new ArrayList< String>();
categories.add("java");
categories.add("python");
categories.add("c");
categories.add("cpp");
categories.add("javascript");
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,categories);
spinner.setAdapter(adapter);
mDatabaseReference = FirebaseDatabase.getInstance().getReference("uploads");
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
private void getPDF() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.parse("package:" + getPackageName()));
startActivity(intent);
return;
}
//creating an intent for file chooser
Intent intent = new Intent();
intent.setType("application/pdf");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_PDF_CODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//when the user choses the file
if (requestCode == PICK_PDF_CODE && resultCode == RESULT_OK && data != null && data.getData() != null) {
//if a file is selected
if (data.getData() != null) {
//uploading the file
uploadFile(data.getData());
}else{
Toast.makeText(this, "No file chosen", Toast.LENGTH_SHORT).show();
}
}
}
private void uploadFile(Uri data) {
progressBar.setVisibility(View.VISIBLE);
final String path=String.valueOf(spinner.getSelectedItem());
StorageReference sRef = mStorageReference.child(path + System.currentTimeMillis() + ".pdf");
sRef.putFile(data)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@SuppressWarnings("VisibleForTests")
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressBar.setVisibility(View.GONE);
textViewStatus.setText("File Uploaded Successfully");
Task<Uri> uri = taskSnapshot.getStorage().getDownloadUrl();
Upload upload = new Upload(editTextFilename.getText().toString(), uri.getResult().toString());
mDatabaseReference.child(path).child(mDatabaseReference.push().getKey()).setValue(upload);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(getApplicationContext(), exception.getMessage(), Toast.LENGTH_LONG).show();
}
})
.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@SuppressWarnings("VisibleForTests")
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
textViewStatus.setText((int) progress + "% Uploading...");
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonUploadFile:
getPDF();
break;
}
}
}
问题:
我怎么做导致了该错误?我是Django和Python的新手。
非常感谢您!