FirebaseStorage.getInstance (String url) .. что это за URL? - PullRequest
0 голосов
/ 17 октября 2018

При попытке доступа к Firebase Storage приложение вылетает.Я звоню в другой файл класса Java, в котором есть все методы и объявления FirebaseStorage.Всякий раз, когда я пытаюсь получить доступ к этому файлу класса, я получаю ошибку в методе FirebaseStorage.getInstance ().Мне было интересно, есть ли другой способ явно указать URL для прямого доступа к корзине хранения вместо доступа к контексту приложения.

PS: я открываю этот класс из фрагмента, который может быть причинойавария.Какие-нибудь мысли ?Спасибо:)

UploadImage.java

public class UploadImage extends MainActivity{

private String path;
private StorageReference storageReference;

public UploadImage(String path){
    this.path = path;
    this.storageReference = FirebaseStorage.getInstance("gs://databasereal-bb774.appspot.com").getReference();
}

public void upload(){
    Uri file = Uri.fromFile(new File(path));
    StorageReference imageRef = storageReference.child("ParamedicImages");

    imageRef.putFile(file)
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    // Get a URL to the uploaded content
                    Log.d("Uupload","Uploaded");

                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception exception) {
                    Log.e("failed upload", exception.toString());
                }
            });
}

}

Исключение

10-17 10:50:19.623 23807-23807/com.example.emil.integrated E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.emil.integrated, PID: 23807
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/zzbq;
    at com.google.firebase.storage.FirebaseStorage.getInstance(Unknown Source:11)
    at com.example.emil.integrated.MainActivity.onCreate(MainActivity.java:52)
    at android.app.Activity.performCreate(Activity.java:7084)
    at android.app.Activity.performCreate(Activity.java:7075)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2765)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2890)
    at android.app.ActivityThread.-wrap11(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1611)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:171)
    at android.app.ActivityThread.main(ActivityThread.java:6633)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.internal.zzbq" on path: DexPathList[[zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/base.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_resources_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/lib/arm64, /system/lib64, /vendor/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at com.google.firebase.storage.FirebaseStorage.getInstance(Unknown Source:11) 
    at com.example.emil.integrated.MainActivity.onCreate(MainActivity.java:52) 
    at android.app.Activity.performCreate(Activity.java:7084) 
    at android.app.Activity.performCreate(Activity.java:7075) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2765) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2890) 
    at android.app.ActivityThread.-wrap11(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1611) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:171) 
    at android.app.ActivityThread.main(ActivityThread.java:6633) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) 
    Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.example.emil.integrated-uhFwZ_bugwGNWNgjr6d59A==/split_lib_resources_apk.apk
    at dalvik.system.DexFile.openDexFileNative(Native Method)
    at dalvik.system.DexFile.openDexFile(DexFile.java:353)
    at dalvik.system.DexFile.<init>(DexFile.java:100)
    at dalvik.system.DexFile.<init>(DexFile.java:74)
    at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)
    at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)
    at dalvik.system.DexPathList.<init>(DexPathList.java:157)
    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
    at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
    at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
    at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)
    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:35)
    at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:695)
    at android.app.LoadedApk.getClassLoader(LoadedApk.java:729)
    at android.app.LoadedApk.getResources(LoadedApk.java:956)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2282)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5714)
    at android.app.ActivityThread.-wrap1(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1680)
            ... 6 more

build.gradle (модуль приложения)

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.example.emil.integrated"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.firebase:firebase-firestore:17.1.1'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-core:16.0.4'

implementation 'com.mindorks:placeholderview:0.2.7'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.support:design:27.0.0'
implementation 'id.zelory:compressor:2.1.0'
implementation 'pub.devrel:easypermissions:0.2.1'
implementation 'com.google.firebase:firebase-storage:11.8.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso- 
core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

build.gradle (модуль проекта)

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.example.emil.integrated"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner     "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'),     'proguard-rules.pro'
    }
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.firebase:firebase-firestore:17.1.1'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-core:16.0.4'

implementation 'com.mindorks:placeholderview:0.2.7'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.android.support:design:27.0.0'
implementation 'id.zelory:compressor:2.1.0'
implementation 'pub.devrel:easypermissions:0.2.1'
implementation 'com.google.firebase:firebase-storage:11.8.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso- 
core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

1 Ответ

0 голосов
/ 17 октября 2018

FirebaseStorage.getInstance (String url) .. что это за URL?

Вам необходимо передать URL вашего Firebase хранилища данных в FirebaseStorage.getInstance() метод

Из документов

FirebaseStorage getInstance (String url)

  • Возвращает FirebaseStorage, инициализированный по умолчанию FirebaseAppи пользовательское хранилище.

Параметры

  • url URL-адрес gs: // для вашего Firebase Storage Bucket.

EDIT

Вам необходимо обновить firebase-storage зависимостей

implementation 'com.google.firebase:firebase-storage:16.0.3'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...