1

我已将 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

我无法检测到实际问题是什么。所以需要一些帮助来解决这个问题,以检测它出了什么问题。

4

3 回答 3

3

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

  1. 删除您复制的所有代码android/core/
  2. 添加android-integration/
  3. 根据http://code.google.com/p/zxing/wiki/ScanningViaIntent使用 3 行代码实现条码扫描
于 2012-05-25T07:18:37.520 回答
1

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

michalu zxing条码

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

于 2013-09-16T15:27:09.923 回答
0

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

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

于 2013-01-16T12:07:25.287 回答