Не удается включить вход в Facebook через MultiDex - PullRequest
0 голосов
/ 08 января 2020

Все это должно быть легко, но я все еще не могу понять это правильно

Я добавил реализацию входа в Facebook в свое приложение build.gradle:

implementation 'com.facebook.android:facebook-login:[5,6)'

Я убедился, что следующее реализован в моем проекте build.gradle:

buildscript {
    ext.kotlin_version = '1.3.50'
    repositories {
        google()
        jcenter()
    }

Когда я синхронизируюсь и запускаюсь, я получаю следующую ошибку:

Cannot fit requested classes in a single dex file (# methods: 71724 > 65536)

Здесь объясняется, как ее решить, установив MultiDex : MultiDexApplication не распознано

Поскольку я использую AndroidX, я добавил в свое приложение build.gradle:

implementation 'androidx.multidex:multidex:2.0.0'

В моем файле манифеста:

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

И, конечно, добавлено:

defaultConfig {
        multiDexEnabled true

Теперь, когда я запускаю приложение, оно сразу же вылетает без каких-либо сообщений об ошибках. Когда я удаляю реализацию входа в Facebook, она работает нормально, поэтому я предполагаю, что MultiDex работает правильно? Что я могу сделать, чтобы выяснить, почему мое приложение дает сбой при входе в Facebook?

Я также включил их в свой gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

Ответы [ 3 ]

0 голосов
/ 08 января 2020

Вы должны использовать пользовательское приложение, например:

  • Приложение
public class App extends Application {
    @Override
    public void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}
  • AndroidManifest. xml
<application
        android:name=".application.App"
0 голосов
/ 08 января 2020

Кажется, что вся проблема была вызвана тем, что вход в Facebook был не самой последней версией, хотя использованная мною версия была скопирована прямо из их официальных документов.

Используемая версия, которая решила проблему:

implementation 'com.facebook.android:facebook-login:5.13.0'
0 голосов
/ 08 января 2020
create your custom myApplication class that extends MultiDexApplication. and add this class in Android Manifest.xml file

 *Android Manifest.xml

<application
        android:name=".myApplication"

 add after that update your myApplication.java class.
          public class myApplication extends MultiDexApplication {



    @Override
    public void onCreate() {
        super.onCreate();

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



}
...