当前位置: 首页 > 知识库问答 >
问题:

当OneSignal Sdk也集成时,MaterialBarcodeScanner不工作

郎同化
2023-03-14

我正在使用这个库为二维码阅读器制作一个应用程序。当我单独制作一个演示时,它可以工作,但当我将它与OneSignal Sdk一起使用时,它不工作。下面是我的毕业代码:

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个答案

章增
2023-03-14

正如我在你的应用程序构建中注意到的。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本身已经初始化了这些依赖项,

一个信号构建。格拉德尔。您应该去掉其中一个,或者在生成中添加排除规则。格拉德尔。

 类似资料:
  • 我试图使用Spring/AspectJ集成,但运气不好。Spring版本是3.2.17(是的,我知道有点旧)。 以下是我的相关配置: pom.xml: 应用程序上下文。xml: spect.java(相关类): 我倒了很多在线教程,运气不好。有人能指出我做错了什么吗? 杰森

  • 我们希望使用logstash获取日志并将其传递给Kafka。 我们已经为logstash1.5.0beta1和kafka 2.9.2_0.8.1.1编写了以下conf文件 ** ** 运行以下命令后:bin/logstash代理-ftest.conf--logex.log test.conf是我们的conf文件。ex.log是我们为要存储的日志创建的空白文件。 我们得到以下输出 发送logstas

  • 我有一个渴望的需求,但我不完全知道去哪里找。 我使用 BitBucket.org 进行网站的私人开发,我想做的预期效果是这样的: < li >我专门从事功能/和bug/分支工作 < li >每当我将代码拉入我的主机(通过拉请求)时,我都希望有东西触发: < li >我希望将主分支的内容上传到服务器(可能通过FTP?)自动(更好的是:只显示发生的更改) 这是像詹金斯这样的技术可以做的事情吗?(我对C

  • 当执行上面的代码时,将发生回滚,并且“Hibernate操作”将被回滚,但在TaskService.Complete中执行的操作不会被回滚。 我已经调试了Camunda代码,一切似乎都正常,我找到了一个SpringTransactionInterceptor,命令在中执行,此时事务处于活动状态。

  • 问题内容: 我看过许多使用这种语法的示例,但是看不到我做错了什么。“ then”函数在ajax调用返回之前正在运行。 我也尝试过使用$ .deferred和其他一些模式无济于事。 有人可以看到我所缺少的吗? 我已经调试,可以看到在ajax调用返回其成功(或错误)数据之前,已完成/然后内部进行的调用。 谢谢你的帮助。 主要电话: 它正在调用以下ajax函数: 谢谢! 验尸: 除了将返回值添加到aja

  • 我成功地签出了llvm(v12)项目,并构建了llvm-cang调用: 执行此操作后,出现空的<code>clang tools</code>目录。调用<code>make clang</code>后,它仍然为空。当我调用<code>make clang tools</code>时,它什么也不做——有一个目标使用这个名称,因为没有关于丢失目标的错误信息,但该命令既不执行也不打印任何内容。另一方面,