zxing android 集成在某些设备上崩溃,以下类无法实例化:- com.google.zxing.client.android.ViewfinderView
Posted
技术标签:
【中文标题】zxing android 集成在某些设备上崩溃,以下类无法实例化:- com.google.zxing.client.android.ViewfinderView【英文标题】:zxing android integration crash on some devices , he following classes could not be instantiated: - com.google.zxing.client.android.ViewfinderView 【发布时间】:2012-05-08 02:55:31 【问题描述】:我已将 Zxing 集成为库并在我的应用程序中使用。我打电话来
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_FORMATS", "CODE_39");
intent.putExtra("SAVE_HISTORY", false);
startActivityForResult(intent, 0);
它在大多数设备上都能正常工作,但在 HTC Desire、GT-I9000 等一些设备上也能正常工作。我收到以下错误。
java.lang.RuntimeException:无法启动活动 组件信息com.Armacell.login/com.google.zxing.client.android.CaptureActivity: android.view.InflateException:二进制 XML 文件第 25 行:错误 膨胀类 com.google.zxing.client.android.ViewfinderView 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 在 android.app.ActivityThread.access$2300(ActivityThread.java:125) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:123) 在 android.app.ActivityThread.main(ActivityThread.java:4627) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:521) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 在 dalvik.system.NativeStart.main(Native Method) 原因: android.view.InflateException:二进制 XML 文件第 25 行:错误 膨胀类 com.google.zxing.client.android.ViewfinderView 在 android.view.LayoutInflater.createView(LayoutInflater.java:513) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:407) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:320) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:276) 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:200) 在 android.app.Activity.setContentView(Activity.java:1647) 在 com.google.zxing.client.android.CaptureActivity.onCreate(CaptureActivity.java:160) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) ... 11 更多原因:java.lang.reflect.InvocationTargetException at com.google.zxing.client.android.ViewfinderView.(ViewfinderView.java:62) 在 java.lang.reflect.Constructor.constructNative(Native Method) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:446) 在 android.view.LayoutInflater.createView(LayoutInflater.java:500) ... 21 更多原因:android.content.res.Resources$NotFoundException: 资源不是可绘制的(颜色或路径): TypedValuet=0x1/d=0x7f070012 a=-1 r=0x7f070012 在 android.content.res.Resources.loadDrawable(Resources.java:1681) 在 android.content.res.TypedArray.getDrawable(TypedArray.java:601) 在 android.view.View.(View.java:1895) 在 android.view.View.(View.java:1844) ... 25 更多
我也在 zxing 源中的 Capture.xml 文件中收到此警告 - "无法实例化以下类: - com.google.zxing.client.android.ViewfinderView"
在这种情况下,我请求所有人提供帮助。提前致谢。
【问题讨论】:
【参考方案1】:这完全错了——您将我们的 Android 代码包含在您的应用中。这不是必需的,不鼓励的,而且你也没有正确地做到这一点。请删除您从android/
复制到项目中的所有代码。
(事实上,我们强烈建议您不要像以前那样复制和粘贴。)
相反,您应该只使用android-integration
中的代码而不是其他任何东西。你甚至没有真正使用积分器代码!
请重新开始:http://code.google.com/p/zxing/wiki/ScanningViaIntent
【讨论】:
但是为什么您的 Capture.xml 在 Eclipse 中显示此错误 “无法实例化以下类:- com.google.zxing.client.android.ViewfinderView”跨度> 我们的没有这样的错误。你的副本是因为你做错了 当我打开 Capture.xml Eclipse 显示 “无法实例化以下类:- com.google.zxing.client.android.ViewfinderView” 你能在这种情况下帮帮我,我已经从 svn 下载了这个 android 源代码 仍然是你的错误,它的意思正是它所说的。我为什么要帮你做你不想做的事?阅读我发送给你的链接,这太难了。【参考方案2】:我自己有解决办法。
问题是关于文化的。我已经更改了默认的“值”。将“values-de”变为“values”。这会使 Zxing 在具有德国文化的设备上崩溃。
我不知道它为什么会起作用,但现在我已将英语设为默认并且它现在可以正常工作了 :)
【讨论】:
这与您发布的错误无关。这意味着您遇到了一个不同的问题:您删除了默认的英语字符串,将德语字符串移动到它们的位置,然后没有使用您在其他地方添加的新字符串更新values
。或类似的东西。以上是关于zxing android 集成在某些设备上崩溃,以下类无法实例化:- com.google.zxing.client.android.ViewfinderView的主要内容,如果未能解决你的问题,请参考以下文章
android camera intent 在某些手机上崩溃应用程序(约 20%)
在某些 Android 设备上获取 nullPointerException onStart() 方法
如何将 ZXing 库集成到 Android Studio 进行条码扫描?
Xamarin.Forms(2.5.0.122203)使用Zxing.Net.Mobile.Forms(2.3.3)时,Android端莫名崩溃