BarcodeDetector无法正常工作并返回false

时间:2018-06-20 13:31:48

标签: java android c android-studio

我在以下方面向您寻求帮助:

我开发了一个使用条形码的应用程序,但是当我运行包含相机读数的活动时,就会出现问题:barcode.isOperational()返回false。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.qr_scan_layout);
    cameraView = (SurfaceView) findViewById(R.id.cameraView);
    cameraView.setZOrderMediaOverlay(true);
    holder = cameraView.getHolder();
    barcode = new BarcodeDetector.Builder(this)
            .setBarcodeFormats(Barcode.QR_CODE)
            .build();
    if (!barcode.isOperational()) {
        Toast.makeText(getApplicationContext(), "Sorry, Couldn't setup the detector", Toast.LENGTH_LONG).show();
        this.finish();
    }

.......

,并且在运行中显示以下消息:

  

Blockquote   W / DynamiteModule:找不到com.google.android.gms.vision.dynamite的本地模块描述符类。   W / DynamiteModule:无法通过快速routecom.google.android.gms.dynamite.DynamiteModule $ zza加载模块:V2版本检查失败   W / DynamiteModule:找不到com.google.android.gms.vision.dynamite的本地模块描述符类。   E / dalvikvm:找不到方法com.google.android.gms.common.zze.zzas引用的类“ android.os.UserManager”   W / dalvikvm:VFY:无法解析Lcom / google / android / gms / common / zze中的检查广播244(Landroid / os / UserManager;);   W / dalvikvm:VFY:无法解析虚拟方法456:Landroid / content / pm / PackageManager; .getPackageInstaller()Landroid / content / pm / PackageInstaller;   E / dalvikvm:找不到方法com.google.android.gms.internal.zzacw.zzg引用的类“ android.app.AppOpsManager”   W / dalvikvm:VFY:无法解析Lcom / google / android / gms / internal / zzacw中的check-cast 22(Landroid / app / AppOpsManager;);   I / DynamiteModule:考虑本地模块com.google.android.gms.vision.dynamite:0和远程模块com.google.android.gms.vision.dynamite:1702   I / DynamiteModule:com.google.android.gms.vision.dynamite的选定远程版本,版本> = 1702   W / dalvikvm:VFY:无法解析虚拟方法4664:Landroid / content / ContextWrapper; .createCredentialProtectedStorageContext()Landroid / content / Context;   W / dalvikvm:VFY:无法解析虚拟方法4665:Landroid / content / ContextWrapper; .createDeviceProtectedStorageContext()Landroid / content / Context;   W / dalvikvm:VFY:无法解析虚拟方法4613:Landroid / content / Context; .createDeviceProtectedStorageContext()Landroid / content / Context;   E / dalvikvm:找不到方法“ llu.b”引用的类“ android.os.UserManager”   W / dalvikvm:VFY:无法在Lllu中解析const-class 1187(Landroid / os / UserManager;);   W / dalvikvm:VFY:无法解析虚拟方法4664:Landroid / content / ContextWrapper; .createCredentialProtectedStorageContext()Landroid / content / Context;   W / dalvikvm:VFY:无法解析虚拟方法4665:Landroid / content / ContextWrapper; .createDeviceProtectedStorageContext()Landroid / content / Context;   W / dalvikvm:VFY:无法解析虚拟方法13946:Lcom / google / android / chimera / ContextThemeWrapper; .createDisplayContext(Landroid / view / Display;)Landroid / content / Context;   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段2263(SUPPORTED_64_BIT_ABIS);   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段2263(SUPPORTED_64_BIT_ABIS);   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段2262(SUPPORTED_32_BIT_ABIS);   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段2264(SUPPORTED_ABIS);   W / dalvikvm:VFY:无法解析虚拟方法1777:Landroid / content / pm / PackageManager; .getPackageInstaller()Landroid / content / pm / PackageInstaller;   E / dalvikvm:找不到类android.os.UserManager,从方法qu.a引用   W / dalvikvm:VFY:无法解析Lqu中的检查广播579(Landroid / os / UserManager;);   D / libc:pt_debug:pthread_create-> start_routine = 0x411e4645,tls = 0x55379f00,arg = 0x5269d860   D / libc:pt_debug:__ thread_entry-> func = 0x411e4645           ,tls = 0x55379f00,arg = 0x5269d860   W / dalvikvm:VFY:无法解析虚拟方法1647:Landroid / app / NotificationManager; .getNotificationChannel(Ljava / lang / String;)Landroid / app / NotificationChannel;   W / dalvikvm:VFY:无法解析虚拟方法1601:Landroid / app / Notification $ Builder; .setChannelId(Ljava / lang / String;)Landroid / app / Notification $ Builder;   W / dalvikvm:VFY:无法解析虚拟方法1689:Landroid / content / Context; .isDeviceProtectedStorage()Z   W / dalvikvm:VFY:无法解析虚拟方法1689:Landroid / content / Context; .isDeviceProtectedStorage()Z   W / dalvikvm:VFY:无法解析静态方法1541:Landroid / app / AppOpsManager; .permissionToOp(Ljava / lang / String;)Ljava / lang / String;   E / dalvikvm:找不到方法'afw.d'引用的类'android.app.AppOpsManager'   W / dalvikvm:VFY:无法在Lafw中解析const-class 384(Landroid / app / AppOpsManager;);   I / Vision:正在加载库libbarhopper.so   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段1054(SUPPORTED_64_BIT_ABIS);   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段1053(SUPPORTED_32_BIT_ABIS);   W / dalvikvm:VFY:无法解析Landroid / os / Build中的静态字段1054(SUPPORTED_64_BIT_ABIS);   I / Vision:libbarhopper.so库加载状态:false   I / Vision:请求下载引擎条形码   W / BarcodeNativeHandle:本机句柄尚不可用。恢复为无操作句柄。   W / DynamiteModule:找不到com.google.android.gms.vision.dynamite的本地模块描述符类。   W / DynamiteModule:无法通过快速routecom.google.android.gms.dynamite.DynamiteModule $ zza加载模块:V2版本检查失败   W / DynamiteModule:找不到com.google.android.gms.vision.dynamite的本地模块描述符类。   I / DynamiteModule:考虑本地模块com.google.android.gms.vision.dynamite:0和远程模块com.google.android.gms.vision.dynamite:1702   I / DynamiteModule:com.google.android.gms.vision.dynamite的选定远程版本,版本> = 1702   I / Vision:正在加载库libbarhopper.so   I / Vision:libbarhopper.so库加载状态:false   D / memalloc:离子:映射的缓冲区基数:0x5537f000大小:159744偏移量:0 fd:89   D / memalloc:离子:映射的缓冲区基数:0x40a67000大小:4096偏移量:0 fd:91   D / memalloc:离子:解映射缓冲区基数:0x5537f000大小:159744   D / memalloc:离子:解映射缓冲区基数:0x40a67000大小:4096

这是我的Build.Gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion '25.0.1'
defaultConfig {
    applicationId "com.jconceptstudio.cd.mobilecheque"
    minSdkVersion 9
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
productFlavors {
}

}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.google.android.gms:play-services-vision:10.0.1'
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.0'

}

当我删除条形码.isOperational()条件时,该活动有效,但条形码检测不起作用。

请注意:

但是,我注意到跑步中存在以下几行,但我不知道为什么会发生。

  

E / dalvikvm:找不到方法com.google.android.gms.common.zze.zzas引用的类'android.os.UserManager'

     

E / dalvikvm:找不到方法com.google.android.gms.internal.zzacw.zzg引用的类'android.app.AppOpsManager'

     

E / dalvikvm:找不到从方法llu.b引用的类'android.os.UserManager'

     

E / dalvikvm:找不到类android.os.UserManager,该类已从方法qu.a引用

     

E / dalvikvm:找不到从方法afw.d引用的类“ android.app.AppOpsManager”

0 个答案:

没有答案