MaterialBarcodeScanner не работает, хотя OneSignal Sdk также интегрирован

Я использую эту библиотеку для создания приложения для чтения кода Qr. Он работает, когда я делаю демонстрацию отдельно, но не работает, когда я использую его с OneSignal Sdk. Ниже мой код Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "param.app.onesignaldemo"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

    manifestPlaceholders = [onesignal_app_id : "61053944-9916-41ae-baa0-1274a5660f6a",
                            // Project number pulled from dashboard, local value is ignored.
                            onesignal_google_project_number: "REMOTE"]
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

repositories {
    maven { url 'https://maven.google.com' }
    maven { url "https://jitpack.io" }
}

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/ASL2.0'
}

}

dependencies {
    compile 'com.android.support:appcompat-v7:26.1.0'
    // OneSignal SDK
    compile 'com.onesignal:OneSignal:[3.6.2, 3.99.99]'
    // OneSignal requires at least version 7.0.0 of GMS but the newest version is recommend.
    // Required for OneSignal, even if you have added FCM.
    compile 'com.google.android.gms:play-services-gcm:11.4.0'
    // Required for geotagging
    compile 'com.google.android.gms:play-services-location:11.4.0'
    compile 'com.google.code.gson:gson:2.8.2'
    compile 'com.github.kenglxn.QRGen:android:2.3.0'
    compile project(':barCodeScanner')
    compile project(path: ':barCodeScanner')
}

и ниже код, где я вызываю сканер кода QR из моей деятельности.

 final MaterialBarcodeScanner materialBarcodeScanner = new MaterialBarcodeScannerBuilder()
            .withActivity(MainActivity.this)
            .withEnableAutoFocus(true)
            .withBleepEnabled(true)
            .withBackfacingCamera()
            .withText("Scanning...")
            .withResultListener(new MaterialBarcodeScanner.OnResultListener()
            {
                @Override
                public void onResult(Barcode barcode) {

                txtvFriendsId.setText(barcode.rawValue);
            }
        })
        .build();
materialBarcodeScanner.startScan();

ошибка появляется в журнале, как это.

Process: param.app.onesignaldemo, PID: 16153
                                                                     java.lang.NoClassDefFoundError: com.google.android.gms.internal.zzbgo
                                                                         at com.google.android.gms.vision.barcode.BarcodeDetector$Builder.<init>(Unknown Source)
                                                                         at com.edwardvanraak.materialbarcodescanner.MaterialBarcodeScannerBuilder.buildMobileVisionBarcodeDetector(MaterialBarcodeScannerBuilder.java:235)
                                                                         at com.edwardvanraak.materialbarcodescanner.MaterialBarcodeScannerBuilder.build(MaterialBarcodeScannerBuilder.java:221)
                                                                         at param.app.onesignaldemo.MainActivity.onCreate(MainActivity.java:58)
                                                                         at android.app.Activity.performCreate(Activity.java:5966)
                                                                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2408)
                                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2519)
                                                                         at android.app.ActivityThread.access$800(ActivityThread.java:162)
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1412)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                         at android.os.Looper.loop(Looper.java:189)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:5532)
                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                         at java.lang.reflect.Method.invoke(Method.java:372)
                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:950)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)

Любая помощь будет высоко оценена.

1 ответ

Как я заметил в вашем приложении build.gradle заявлены следующие сервисы google-play:

// Required for OneSignal, even if you have added FCM.
compile 'com.google.android.gms:play-services-gcm:11.4.0'
// Required for geotagging
compile 'com.google.android.gms:play-services-location:11.4.0'

Однако сам OneSignal уже инициализировал эти зависимости,

Один сигнал build.gradle. Вы должны избавиться от одного из них или добавить исключающее правило в свой build.gradle.

Другие вопросы по тегам