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.