Использование Multidex с поддержкой True в приложении аварийного завершения сборки файла с исключением нулевого указателя - PullRequest
0 голосов
/ 23 сентября 2018

Я создаю социальное приложение и, поскольку у меня много зависимостей, я использовал multidex enable true в файле сборки и аналогичным образом добавил в файл манифеста.Но это дает мне ошибку исключения нулевого указателя и сбои приложения.

Но когда я удаляю мультидекс, приложение запускается без ошибок .. Пожалуйста, помогите.

Весь мой проект https://github.com/BlueYeti1881/myfirstapp Вот ошибка журнала cat enter image description here

и файл Gradle сборки

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.nepalpolice.hometuitionnepal"
        minSdkVersion 16
        targetSdkVersion 27
        vectorDrawables.useSupportLibrary = true
        versionCode 2
         multiDexEnabled true
        versionName "2.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

         lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }

        packagingOptions {
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/project.properties'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/ASL2.0'
            exclude 'allclasses-frame.html'
        }

    }
    dexOptions {
        jumboMode true
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    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'


    // Support libraries
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:animated-vector-drawable:27.1.1'
    implementation 'com.android.support:customtabs:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:cardview-v7:27.1.1'


    //maps and location





    // Firebase
     implementation 'com.google.firebase:firebase-messaging:11.4.2'
    implementation 'com.google.firebase:firebase-database:11.4.2'
    implementation 'com.google.firebase:firebase-core:11.4.2'
       implementation 'com.google.firebase:firebase-auth:11.4.2'
    implementation 'com.google.firebase:firebase-storage:11.4.2'




    // MVP
    implementation 'com.hannesdorfmann.mosby3:mvp:3.1.0' // Plain MVP

    // Social
    implementation 'com.google.android.gms:play-services-auth:11.4.2'
    implementation 'com.facebook.android:facebook-android-sdk:4.17.0'

    // Images
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
    implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'





}


apply plugin: 'com.google.gms.google-services'
Заранее спасибо.

1 Ответ

0 голосов
/ 24 сентября 2018

После включения мультидекса

public class Application extends android.app.Application {

    public static final String TAG = Application.class.getSimpleName();

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

        ApplicationHelper.initDatabaseHelper(this);
        PostInteractor.getInstance(this).subscribeToNewPosts();
    }
}

Заменить на

public class Application extends MultiDexApplication {

    public static final String TAG = Application.class.getSimpleName();

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

        ApplicationHelper.initDatabaseHelper(this);
        PostInteractor.getInstance(this).subscribeToNewPosts();
    }
}
...