【问题标题】:Android QR Code Scanning Using Zxing Library Turns Into Crash使用 Zxing 库扫描 Android QR 码会崩溃
【发布时间】:2012-05-23 19:33:20
【问题描述】:

我已将 zxing 库集成到我的应用程序中以扫描 QR 码。当我按下按钮并启动 zxing 扫描活动时,应用程序崩溃并在 logcat 上显示以下消息,

05-24 02:17:24.037: E/AndroidRuntime(516): FATAL EXCEPTION: main

05-24 02:17:24.037: E/AndroidRuntime(516): java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.code.looknmove/com.google.zxing.client.android.CaptureActivity}: android.content.res.Resources$NotFoundException: File res/xml/preferences.xml from 
drawable resource ID #0x7f050000

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.os.Handler.dispatchMessage(Handler.java:99)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.os.Looper.loop(Looper.java:123)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.ActivityThread.main(ActivityThread.java:4627)

05-24 02:17:24.037: E/AndroidRuntime(516):  at java.lang.reflect.Method.invokeNative(Native Method)

05-24 02:17:24.037: E/AndroidRuntime(516):  at java.lang.reflect.Method.invoke(Method.java:521)

05-24 02:17:24.037: E/AndroidRuntime(516):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

05-24 02:17:24.037: E/AndroidRuntime(516):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

05-24 02:17:24.037: E/AndroidRuntime(516):  at dalvik.system.NativeStart.main(Native Method)

05-24 02:17:24.037: E/AndroidRuntime(516): Caused by: android.content.res.Resources$NotFoundException: File res/xml/preferences.xml from drawable resource ID #0x7f050000

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.content.res.Resources.openRawResourceFd(Resources.java:860)

05-24 02:17:24.037: E/AndroidRuntime(516):  at com.google.zxing.client.android.BeepManager.buildMediaPlayer(BeepManager.java:97)

05-24 02:17:24.037: E/AndroidRuntime(516):  at com.google.zxing.client.android.BeepManager.updatePrefs(BeepManager.java:60)

05-24 02:17:24.037: E/AndroidRuntime(516):  at com.google.zxing.client.android.BeepManager.<init>(BeepManager.java:49)

05-24 02:17:24.037: E/AndroidRuntime(516):  at com.google.zxing.client.android.CaptureActivity.onCreate(CaptureActivity.java:165)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

05-24 02:17:24.037: E/AndroidRuntime(516):  ... 11 more

05-24 02:17:24.037: E/AndroidRuntime(516): Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.content.res.AssetManager.openNonAssetFdNative(Native Method)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.content.res.AssetManager.openNonAssetFd(AssetManager.java:426)

05-24 02:17:24.037: E/AndroidRuntime(516):  at android.content.res.Resources.openRawResourceFd(Resources.java:857)

05-24 02:17:24.037: E/AndroidRuntime(516):  ... 17 more

我无法检测到实际问题是什么。因此,需要一些帮助来解决问题,以检测问题所在。

【问题讨论】:

    标签: android zxing qr-code scanning


    【解决方案1】:

    问题是您已将我们所有的android/ 代码复制并粘贴到您的项目中,并且并不真正了解您复制的内容。 强烈不鼓励以这种方式复制我们的应用程序。如果您是 Android 新手,那么尝试重用我们的代码可能太复杂了。

    1. 删除您从android/core/ 复制的所有代码
    2. 添加android-integration/
    3. 按照http://code.google.com/p/zxing/wiki/ScanningViaIntent实现了3行代码的条码扫描

    【讨论】:

    • 我刚刚看了一个关于如何将zxing集成到android应用程序中的教程。 Newways,我会试一试,希望这能解决我的问题。谢谢。顺便说一句,我已将 android 项目作为库添加到我的应用程序中,并将 core.jar 作为库添加到我的应用程序中。我应该删除所有这些吗?
    • 除了android-integration 之外,您无需添加任何内容即可使用 Intent。上面的链接就是你所需要的。
    • 使用它要求必须像那样安装条形码扫描仪。但我的要求是必须在不安装它的情况下完成 qrcode 扫描。它必须通过使用我的应用程序来完成。是可能吗?请对此提出任何建议。
    • 是的,但您需要编写自己的应用程序,而不是复制我们的应用程序。如果需要,请使用位。如果您无法做到这一点,我认为您别无选择,只能使用 Intents 对吗? BS 无论如何都会比你的副本做得更好
    • 我可以使用 BS 将解码图像保存在 sdcard 中吗?
    【解决方案2】:

    同样的问题,通过此链接修复:

    michalu zxing barcode

    作为库,使用他的 zxing 库,您可以从页面底部的链接下载。它对我有用

    【讨论】:

      【解决方案3】:

      我在使用 Zxing 库时遇到了同样的问题,我通过这种技术解决了它

      在“PacakageName.StartActivity”等清单文件中提供启动器活动的完整路径

      【讨论】:

        猜你喜欢
        • 2013-04-19
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-07
        • 1970-01-01
        相关资源
        最近更新 更多