Bạn không tìm thấy lớp com com.firebase.provider.FirebaseInitProvider tựa?


156

Tôi nhận được ngoại lệ dưới đây khi khởi chạy ứng dụng.

java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:4993)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536)
at android.app.ActivityThread.access$1300(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5214)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[zip file "/data/app/com.vfirst.ifbagro-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.vfirst.ifbagro-1, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.ActivityThread.installProvider(ActivityThread.java:4978)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4596) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4536) 
at android.app.ActivityThread.access$1300(ActivityThread.java:149) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5214) 
at java.lang.reflect.Method.invokeNative(Native Method) 

Đây là cấp độ ứng dụng build.gradle

apply plugin: 'com.android.application'
apply plugin: 'android-apt' 

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"

defaultConfig {
    applicationId "com.vfirst.ifbagro"
    minSdkVersion 17
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])


compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.google.android.gms:play-services-gcm:9.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.android.gms:play-services:9.4.0'
testCompile 'junit:junit:4.12'
}

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

Đây là cấp độ ứng dụng build.gradle của tôi

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
    classpath 'com.google.gms:google-services:3.0.0'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    classpath 'com.google.gms:google-services:3.0.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

task clean(type: Delete) {
     delete rootProject.buildDir
}

Làm thế nào để giải quyết vấn đề?


Bản sao có thể có của stackoverflow.com/questions/37312103/
Kẻ

Tôi đã thử tất cả những câu trả lời. không có gì hiệu quả
WISHY

Dường như có một vấn đề trong tệp kê khai của bạn hoặc google-services.json Hãy chắc chắn rằng chúng là chính xác. Bạn có thể gửi tập tin kê khai của bạn?
Rushi M Thakker

6
Bạn đã thực hiện thay đổi tệp kê khai cần thiết cho MultiDex : android:name="android.support.multidex.MultiDexApplication"? Nếu MultiDex được cấu hình đúng, bạn sẽ thấy các thông báo logcat trong khi khởi động ứng dụng như thế này : I/MultiDex: install done.
Bob Snyder

kiểm tra chạy ngay lập tức nếu có, vô hiệu hóa chạy ngay lập tức.
Prathap Badavath

Câu trả lời:


145

Tôi đã có cùng một lỗi và tôi đã giải quyết nó với MultiDex, như được mô tả trên liên kết này: https://developer.android.com/studio/build/multidex.html


Đôi khi nó không đủ để kích hoạt MultiDex.

Nếu bất kỳ lớp nào được yêu cầu trong quá trình khởi động không được cung cấp trong tệp DEX chính , thì ứng dụng của bạn gặp sự cố với lỗi java.lang.NoClassDefFoundError . https://developer.android.com/studio/build/multidex#keep

Cần có FirebaseInitProvider trong quá trình khởi động.

Vì vậy, bạn phải chỉ định thủ công FirebaseInitProvider theo yêu cầu trong tệp DEX chính.

tập tin build.gradle

android {
    buildTypes {
        release {
            multiDexKeepFile file('multidex-config.txt')
            ...
        }
    }
}

multidex-config.txt (trong cùng thư mục với tệp build.gradle)

com/google/firebase/provider/FirebaseInitProvider.class

1
bạn thật tuyệt vời <3 cảm ơn rất nhiều bạn đã cứu ngày của tôi <3
Mohamed Atef

24
Này ngoại lệ này: Nguyên nhân bởi: java.lang.ClassNotFoundException: Không tìm thấy lớp "com.google.firebase.provider.FirebaseInitProvider" không liên quan gì đến việc kích hoạt multidex, thực tế nếu bạn thấy các câu hỏi build.gradle multiDexEnables được kích hoạt!
Jorgesys

3
Không có lỗi này là từ multidex, anh ta chỉ không hoàn thành tất cả các bước, vì bạn không thể thấy bảng kê khai của anh ta hoặc lớp chính của anh ta.
AMAN77

3
Điều này đã làm việc. Tôi đã kích hoạt multidex trong tệp gradle của mình, nhưng thiếu phần Manifest Android!
krikara

3
Ngoài ra, hãy chắc chắn rằng Applicationlớp học của bạn kéo dài từ MultiDexApplication(). Điều này đã bị mất trong trường hợp của tôi.
Nelson Almendra

86

Tôi cũng đối mặt với vấn đề tương tự và cuối cùng đã giải quyết nó bằng cách vô hiệu hóa Instant Runtrong một studio android.

Cài đặt → Xây dựng, Thực thi, Triển khai → Chạy ngay lập tức và bỏ chọn Bật Chạy ngay lập tức

Cập nhật:

Không có tùy chọn Instant Run có sẵn trong Android Studio 3.5+ mới nhất. Nó chỉ nên được áp dụng cho các phiên bản cũ hơn.


8
Tương tự cho tôi. Đây là nguyên nhân của vấn đề - không phải là multidex hay bất kỳ câu trả lời nào khác.
dùng3562927

3
Có vẻ như đây là một vấn đề với Android Studio 2.3. Vô hiệu hóa chạy ngay lập tức cũng có tác dụng với tôi, nhưng đây không phải là giải pháp lý tưởng :(
Tharaka Devinda

1
Tôi được thừa hưởng hai dự án từ một công ty khác. Các cấu hình cơ sở mã, bảng kê khai và lớp thực tế là cùng một kỳ vọng cho một vài mục nhỏ. Một dự án xây dựng và chạy tốt, dự án còn lại thì không. Tắt Instant Run và cả hai đều chạy ngay bây giờ. Lạ thật. Đây là sử dụng Android Studio. 2.3.
joeblow23

3
Tôi đã đối mặt với vấn đề rất giống với AS 3.1 và trình giả lập chạy API 26. Trước khi tôi gặp phải bất kỳ vấn đề nào với API 19-25. Vô hiệu hóa chạy ngay lập tức thực sự cho phép tôi chạy ứng dụng. Cảm ơn.
Marcin Jedynak

1
Vô hiệu hóa Instant Run không giải quyết được vấn đề này cho tôi.
Alyoshak

49

Trong tệp build.gradle (Module: app), chèn mã bên dưới vào defaultConfig:

  defaultConfig {
        applicationId "com.***.****"
minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

và chèn vào phụ thuộc:

implementation 'com.android.support:multidex:2.0.1'

Sau đó thêm mã vào bảng kê khai:

<application 
    android:name="android.support.multidex.MultiDexApplication"

1
Tôi đang thử nó, nếu nó hoạt động tôi sẽ bình chọn và bình luận
Kamil Ibadov 18/2/2017

45

Tôi đã gặp vấn đề tương tự trong (dự án trình phát YouTube) của tôi ... và những điều sau đây đã giải quyết vấn đề cho tôi:

  1. Thêm mã này vào build.gradle(mô-đun: ứng dụng) của bạn bên trong defaultConfing:

    defaultConfig {
        ....
        ....
        multiDexEnabled = true
    }
    
  2. Thêm mã này vào build.gradle(mô-đun: ứng dụng) của bạn bên trong dependencies:

    dependencies {
        compile 'com.android.support:multidex:1.0.1'
        .....
        .....
    }
    
  3. Mở AndroidManifest.xmlvà trong application:

    <application
        android:name="android.support.multidex.MultiDexApplication"
        .....
        .....
    </application>
    

    hoặc nếu bạn có lớp Ứng dụng của mình, hãy mở rộng nó từ MultiDexApplication như:

    public class MyApp extends MultiDexApplication {
    .....
    

Và cuối cùng, tôi nghĩ bạn nên tải xuống Kho lưu trữ hỗ trợ của Android , trong Extras trong SDK Manager .


1
Tôi đã làm "MultiDex.install (cái này);" nhưng nó không hoạt động. Mở rộng lớp ứng dụng với MultiDexApplication đã thực hiện thủ thuật này.
Safeer

33

Chỉ cần ghi đè phương thức sau trong lớp ứng dụng của bạn.

public class YourApplication extends Application {

    @Override
    protected void attachBaseContext(Context context) {
        super.attachBaseContext(context);
        MultiDex.install(this);
    }
    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(this); //initialize other plugins 

    }
}

cộng với một người không rơi vào những android:namethứ trong Bản kê khai
Chisko

Câu trả lời đơn giản nhất và hay nhất
kader kabore

Nếu bạn đang sử dụng một lớp Ứng dụng tùy chỉnh thì đây là câu trả lời. Các câu trả lời khác sẽ không khắc phục vấn đề.
makkhay gurung

25

Khi ứng dụng của bạn và các thư viện mà nó tham chiếu vượt quá 65.536 phương thức, bạn gặp phải lỗi xây dựng cho biết ứng dụng của bạn đã đạt đến giới hạn của kiến ​​trúc xây dựng Android

Để tránh giới hạn này, bạn phải định cấu hình ứng dụng của mình cho multidex

Nếu minSdkVersion của bạn được đặt thành 21 hoặc cao hơn, tất cả những gì bạn cần làm là đặt multiDexEnables thành true trong tệp build.gradle cấp mô-đun của bạn, như được hiển thị ở đây:

android {
    defaultConfig {
        ...
        minSdkVersion 21 
        multiDexEnabled true
    }
    ...   
}

Khác , nếu minSdkVersion của bạn được đặt thành 20 hoặc thấp hơn, thì bạn phải sử dụng thư viện hỗ trợ multidex như sau:

1. Sửa đổi tệp build.gradle cấp mô-đun để kích hoạt multidex và thêm thư viện multidex làm phụ thuộc, như được hiển thị ở đây:

android {
    defaultConfig {
        ...
        minSdkVersion 15 
        multiDexEnabled true
    }
    ...
 }

dependencies {
        implementation 'com.android.support:multidex:1.0.3'
}

2. Tùy thuộc vào việc bạn có ghi đè lớp Ứng dụng hay không, thực hiện một trong các thao tác sau:

  • Nếu bạn không ghi đè lớp Ứng dụng, hãy chỉnh sửa tệp kê khai của bạn để đặt android: name trong thẻ như sau:

    <application
        android:name="android.support.multidex.MultiDexApplication" >
        ...
    </application>
  • Khác Nếu bạn ghi đè lớp Ứng dụng, hãy thay đổi nó để mở rộng MultiDexApplication (nếu có thể) như sau:

   public class MyApplication extends MultiDexApplication { ... }
  • Ngoài ra, bạn còn ghi đè lớp Ứng dụng nhưng không thể thay đổi lớp cơ sở, sau đó bạn có thể ghi đè phương thức Đính kèmBaseContext () và gọi MultiDex.install (điều này) để bật multidex:

   public class MyApplication extends SomeOtherApplication {
     @Override
     protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
     }
   }

Tại sao ứng dụng cần mở rộng MultiDexApplication?
Jason

1
MultiDexApplication là lớp thư viện hỗ trợ. Nó triển khai lớp Ứng dụng và ghi đè tên phương thức AttachBaseContext để thực hiện công việc đăng ký MultiDex. Bạn không cần phải mở rộng lớp này nếu bạn ghi đè phương thức Đính kèm.
Ponmean Pon

1
Điều này đã sửa nó cho tôi vào năm 2019 với React Native nhưng thiếu 2 lần nhập trong MainApplication.java: import android.content.Context;import android.support.multidex.MultiDex;
xaphod

1
câu trả lời của bạn đã giúp tôi làm cho ứng dụng của tôi trở lại compat.
Alok Vishwakarma

18

Kích hoạt multidexkhông phải là một giải pháp tốt bởi vì multidexcó một cách sử dụng khác trong Android, hãy xem câu trả lời này là multidex

Giải pháp là vô hiệu hóa chạy ngay lập tức như @Shylendra Madda nói

Cài đặt → Xây dựng, Thực thi, Triển khai → Chạy ngay lập tức và bỏ chọn Bật Chạy ngay lập tức

Tôi nghĩ lý do của vấn đề này là khi bật tính năng chạy tức thì, Android Studio không đặt các thư viện như firebaseapk được tạo để giảm thời gian xây dựng dự án vì firebase thư viện và các thư viện khác như mapsvà các dịch vụ khác đang tồn tại trong dịch vụ chơi và cài đặt dịch vụ chơi trên thiết bị Android, vì vậy nếu chạy ngay lập tức, không cần phải đặt chúng vào apk được tạo để giúp thời gian xây dựng nhanh hơn.

Vì vậy, khi bạn giải nén apk và cài đặt nó trên một thiết bị khác, bạn sẽ thấy ngoại lệ này


1
Đây là giải pháp hoàn hảo
Ghanshyam Bagul

Vô hiệu hóa Instant Run không giải quyết được vấn đề cho tôi.
Alyoshak

Trong Android Studio 3.5.1, không có mục Chạy ngay lập tức trong phần Xây dựng, Thực thi, Triển khai.
Vergiliy

@Vergiliy Họ thay thế nó bằng áp dụng thay đổi thấy bài viết blog phát hành android-developers.googleblog.com/2019/08/... để biết thêm và các tài liệu developer.android.com/studio/run#apply-changes để biết thêm về áp dụng thay đổi
Edalat Feizi

14

Tôi cũng đã phải đối mặt với vấn đề tương tự sau khi thử tất cả các giải pháp tôi tìm thấy giải pháp dưới đây.

Nếu bạn đã áp dụng quy tắc proguard thì hãy thêm dòng dưới đây vào Quy tắc ProGuard

-keep class com.google.firebase.provider.FirebaseInitProvider

và nó giải quyết vấn đề của tôi.


@gunavant patel bro vui lòng cho tôi biết cách thêm vào proguard vui lòng
Gowthaman M

1
@gunavant patel Tôi nghĩ rằng điều này sẽ giải quyết vấn đề của tôi ... bạn có thể vui lòng gửi mã mẫu ở đâu để giữ dòng này không-keep class com.google.firebase.provider.FirebaseInitProvider
Gowthaman M

@GowthamanM Trước tiên, hãy kiểm tra xem bạn có bật proguard trong tệp app / build.gradle không. nếu kích hoạt thì bạn tìm thấy tệp proguard-quy tắc trong app / proguard-rules.pro trong tệp đó thêm dòng trên. Nếu bạn không kích hoạt proguard thì nó không kích hoạt bạn.
Gunavant Patel

buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }Làm thế nào để kích hoạt xin vui lòng cho tôi biết thưa ông
Gowthaman M

nếu bạn chưa kích hoạt proguard thì vấn đề sẽ khác. nhưng tôi chỉ cho bạn cách kích hoạt nó thêm "minifyEnables true" trong bản phát hành hoặc nếu bạn muốn kích hoạt gỡ lỗi thì cũng thêm vào loại gỡ lỗi.
Gunavant Patel

8

1: Chuyển đến lớp kích hoạt multiDexEnables và thêm thư viện multidex trong phần phụ thuộc.

android {
   ...
   defaultConfig {
      multiDexEnabled true
      ...
   }
}

dependencies {
  // add dependency 
  implementation 'com.android.support:multidex:1.0.1'
}

2: Truy cập tệp Manifest và viết android: name = ". MyApplication" (Tên lớp (MyApplication) là tùy chọn bạn có thể viết bất cứ điều gì bạn muốn).

    <application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        .
        .
        .
        .
        .
    </application>

3: Như bạn đã viết android: name = ". MyApplication" Inside Application tại tệp Manifest. nó sẽ báo lỗi vì bạn không tạo lớp MyApplication. Tạo Lớp MyApplication mở rộng nó bằng lớp "application" hoặc Đơn giản chỉ cần nhấp vào.MyApplication, một quả bóng nhỏ màu đỏ xuất hiện ở phía bên trái của cú pháp nhấp vào nó, bạn sẽ thấy (tạo lớp MyApplication) trong menu, nhấp vào nó và Bao gồm bên dưới Phương thức Bên trong lớp đó.

    public class MyApplication extends Application {

    @Override 
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    } 

Nếu bạn muốn có thêm thông tin thì Nhấp vào Liên kết này: [ https://developer.android.com/studio/build/multidex.html]

Hy vọng, nó làm việc cho bạn.


7

Đầu tiên thêm phần sau vào build.gradle (Module: app) ---->

defaultConfig{
..
multiDexEnabled true
..
}

Sau đó trong cùng một tập tin thêm vào như sau

dependencies{
...
compile 'com.android.support:multidex:1.0.1'
...
}

Sau đó, trong AndroidManifest.xml viết như sau

<application
    android:name="android.support.multidex.MultiDexApplication"
    .....
    .....
</application>

Đó là nó. Nó chắc chắn sẽ làm việc


6

Nếu bạn đang sử dụng MultiDex trong Ứng dụng Gradle của mình thì hãy thay đổi ứng dụng mở rộng để mở rộng MultiDexApplication trong lớp ứng dụng của bạn. Nó sẽ thách thức làm việc


4

Tôi đã có cùng một vấn đề và giải quyết chỉ cần thêm một đoạn mã , Nếu bạn gặp vấn đề này có nghĩa là bạn đã hoàn thành tất cả các bước cần sử dụng Firebase. Bạn chỉ cần tạo một lớp mở rộng Ứng dụng (lớp công khai Application_CrashReport mở rộng Ứng dụng) và thêm lớp này vào tệp chính và trong lớp đó chỉ ghi đè phương thức bên dưới

  @Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
}

và thêm MultiDex.install (cái này); trong phương pháp đó có nghĩa là

  @Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

Lưu ý : - Đừng quên làm theo các bước trên


2

Điều này là do MultiDex.

Các bước để giải quyết:

  1. Trong lớp -> phụ thuộc -> (compile'com.android.support: multidex: 1.0.1 ') Thêm phần này vào phần phụ thuộc

  2. Trong lớp ứng dụng dự án của bạn mở rộng MultiDexApplication như thế này (lớp công khai MyApplication mở rộng MultiDexApplication)

  3. Chạy và kiểm tra


2

Đây là một chút muộn cho những người đến, nhưng kiểm tra quy tắc proguard của bạn! Tôi đã lãng phí rất nhiều thời gian cho việc này. Quy tắc proguard của bạn có thể thay đổi tên thành các tập tin firebase quan trọng. Điều này thực sự chỉ chứng minh một vấn đề trong sản xuất và chạy ngay lập tức :)

proguard-rules.pro

-keep class com.google.firebase.** { *; }
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.apache.**
-dontwarn org.w3c.dom.**

Điều này đã tạo ra mánh khóe, cho phép multidex không làm gì ngoài việc lãng phí thời gian!
Magnus W

2

Như đã đề cập trước đây, đây là một vấn đề với multidex: bạn nên thêm triển khai vào build.gradleMainApplication.java. Nhưng những gì bạn thêm thực sự phụ thuộc vào việc bạn có hỗ trợ AndroidX hay không. Đây là những gì bạn cần để giải quyết vấn đề này:

  1. Nếu bạn hỗ trợ AndroidX

Đặt các dòng mã này vào build.gradle(android / app / build.gradle) của bạn:

defaultConfig {
  applicationId "com.your.application"
  versionCode 1
  versionName "1.0"
  ...
  multiDexEnabled true // <-- THIS LINE
}
...
...
dependencies {
  ...
  implementation "androidx.multidex:multidex:2.0.1" // <-- THIS LINE
  ...
}

Đặt các dòng này vào MainApplication.java(android / app / src / main / java /.../ MainApplication.java) của bạn:

package com.your.package;

import androidx.multidex.MultiDexApplication; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE
  1. Nếu bạn không hỗ trợ AndroidX

Đặt các dòng mã này vào build.gradle(android / app / build.gradle) của bạn:

defaultConfig {
  applicationId "com.your.application"
  versionCode 1
  versionName "1.0"
  ...
  multiDexEnabled true // <-- THIS LINE
}
...
...
dependencies {
  ...
  implementation "com.android.support:multidex:1.0.3" // <-- THIS LINE
  ...
}

Đặt các dòng này vào MainApplication.java(android / app / src / main / java /.../ MainApplication.java) của bạn:

package com.your.package;

import android.support.multidex.MultiDex;; // <-- THIS LINE
...
...
public class MainApplication extends MultiDexApplication { ... } // <-- THIS LINE

1

Bạn nên mở rộng lớp Ứng dụng của mình MultiDexApplicationthay vì Application.


0

Sự cố này xảy ra khi tôi chuyển sang Android Studio 3.4 với plugin Android Gradle 3.4.0. hoạt động với trình biên dịch R8.

Plugin Android Gradle bao gồm các tệp quy tắc ProGuard được xác định trước bổ sung, nhưng bạn nên sử dụng proguard-android-Optimization.txt . Thêm thông tin ở đây .

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile(
          'proguard-android-optimize.txt'),
          // List additional ProGuard rules for the given build type here. By default,
          // Android Studio creates and includes an empty rules file for you (located
          // at the root directory of each module).
          'proguard-rules.pro'
    }
}

0

Tôi đã phải đối mặt với cùng một vấn đề và tôi đã giải quyết vấn đề này bằng cách thay đổi phiên bản FirablesseStorage giống như phiên bản cơ sở dữ liệu Firebase

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.google.firebase:firebase-database:16.0.1'
 implementation 'com.google.firebase:firebase-storage:17.0.0'

đến

 implementation 'com.google.firebase:firebase-core:16.0.8'
 implementation 'com.google.firebase:firebase-database:16.0.1'
 implementation 'com.google.firebase:firebase-storage:16.0.1'

0

Nếu bạn có> 20 minsdkversion, bạn cần sử dụng phiên bản Firebase Auth mới nhất tức là

triển khai 'com.google.firebase: firebase-auth: 18.1.0'

và không cần thiết lập multi-dex nếu bạn không thực sự cần nó.

Tôi gặp phải sự cố này khi tôi đã sử dụng 16.0.5 từ trình trợ giúp Firebase nhưng đã có thể khắc phục khi tôi cập nhật lên 18.1.0.


0

Nếu bạn đang sử dụng Xamarin.Forms, bạn có thể muốn kiểm tra Không tìm thấy lớp "com.google.firebase.provider.FirebaseInitProvider"? vì điều này ghi nhận sự cố với lỗi dex với google firebase khi khởi động (chưa được giải quyết tại thời điểm này).

Tôi đã quay trở lại sử dụng không thu hẹp trong thời gian ngắn và dự định sử dụng ProGuard cho đến khi R8 ổn định hơn.


-6

thêm vào đường dẫn gốc dự án google-services.json

dependencies {
compile 'com.android.support:support-v4:25.0.1'
**compile 'com.google.firebase:firebase-ads:9.0.2'**
compile files('libs/StartAppInApp-3.5.0.jar')
compile 'com.android.support:multidex:1.0.1'
  }
apply plugin: 'com.google.gms.google-services'

xem xét thêm một số thông tin vào câu trả lời của bạn và mã này sẽ không giúp được ai
Ashu Kumar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.