Zbar扫描仪在Android 6.0上不受支持。

3
当我点击扫描时,会出现错误提示,但在之前的版本中(包括棒棒糖版本)它是可以正常工作的。
java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/xxxxxxx-xxx/lib/arm/libiconv.so: has text relocations
    at java.lang.Runtime.loadLibrary(Runtime.java:372)
    at java.lang.System.loadLibrary(System.java:1076)
    at me.dm7.barcodescanner.zbar.ZBarScannerView.<clinit>(ZBarScannerView.java:33)
    at com.xxx.xxx.SimpleScannerActivity.onCreate(SimpleScannerActivity.java:101)
    at android.app.Activity.performCreate(Activity.java:6248)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2437)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544)
    at android.app.ActivityThread.access$900(ActivityThread.java:150)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:168)
    at android.app.ActivityThread.main(ActivityThread.java:5845)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)

执行以下代码时:
static {
        System.loadLibrary("iconv");
    }

我的TargetSDK版本是23。如果我将其更改为22,它可以正常工作。

请采取必要措施。


可能是libavcodec.so: has text relocations的重复问题。 - Henry
我正在使用zbar,在Android MarshMallow上运行得非常完美。 - Abhishek
展示你的代码,我可以帮助你。 - Abhishek
我的目标 SDK 版本是 23。如果我将其更改为 22,那就会出现问题。它只有在目标版本为 23 时才能正常工作。 - Abdul Basith
我无法降低我的目标SDK版本,因为它已经在Play商店上了。 - Abdul Basith
@AbdulBasith你是如何解决这个问题的?我也遇到了同样的问题。 - user
2个回答

4

1、下载最新的zbar项目,请在这里下载。

2、从barcodescanner/zbar/src/main/jniLibs中获取最新的.so文件。

这对我有效。


-1

我有一个解决方案,虽然不是很好,但它能够起作用。

在您的应用 gradle 文件中将构建版本从23更改为22。

替换

android {
  compileSdkVersion 23
  buildToolsVersion "23.0.2"
}

使用

android {
  compileSdkVersion 22
  buildToolsVersion "22.0.0"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接