3

所以我试图在我的应用程序中实现它,但问题是它不能作为一个单独的应用程序工作,所以它在我每次启动它时都会崩溃。我按照以下教程http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/做所有事情,但是,不知何故不起作用。所以我尝试将 captureActivity 作为应用程序而不是库启动,当它尝试这样做时它会在启动时崩溃:

 private static final Set<ResultMetadataType> DISPLAYABLE_METADATA_TYPES =
  EnumSet.of(ResultMetadataType.ISSUE_NUMBER,
             ResultMetadataType.SUGGESTED_PRICE,
             ResultMetadataType.ERROR_CORRECTION_LEVEL,
             ResultMetadataType.POSSIBLE_COUNTRY);

这导致我没有正确编译 core.jar 的问题。但是我看不出我会在哪里犯错。我在核心目录中运行 ant -f,它给了我 core.jar。有什么想法我能做什么?

编辑:日志猫:

 01-06 02:07:08.280: E/AndroidRuntime(1629): FATAL EXCEPTION: main
 01-06 02:07:08.280: E/AndroidRuntime(1629): java.lang.ExceptionInInitializerError
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at java.lang.Class.newInstanceImpl(Native Method)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at java.lang.Class.newInstance(Class.java:1409)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.os.Handler.dispatchMessage(Handler.java:99)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.os.Looper.loop(Looper.java:130)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at android.app.ActivityThread.main(ActivityThread.java:3683)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at java.lang.reflect.Method.invokeNative(Native Method)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at java.lang.reflect.Method.invoke(Method.java:507)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at dalvik.system.NativeStart.main(Native Method)
 01-06 02:07:08.280: E/AndroidRuntime(1629): Caused by: java.lang.NoClassDefFoundError: com.google.zxing.ResultMetadataType
 01-06 02:07:08.280: E/AndroidRuntime(1629):    at com.google.zxing.client.android.CaptureActivity.<clinit>(CaptureActivity.java:107)
 01-06 02:07:08.280: E/AndroidRuntime(1629):    ... 15 more
 01-06 02:07:08.740: E/GoKeyboard(1442): error setSuggestions isNotInput()!
 01-06 02:07:09.140: E/GoKeyboard(1442): error setSuggestions isNotInput()!
 01-06 02:07:11.600: E/GoKeyboard(1442): error setSuggestions isNotInput()!
 01-06 02:07:11.600: E/GoKeyboard(1442): error setSuggestions isNotInput()!

现在我从这里http://mvnrepository.com/artifact/com.google.zxing/core/2.0下载了核心并使用它并窃取了同样的错误,所以它必须是别的东西......

4

2 回答 2

4

转到属性 -> Java 构建路径 -> “订购和导出”

然后将core.jar命令到第一个位置并选择它!

您必须在操作后清理您的项目。项目 -> 清洁

这样就解决了问题。我希望它可以节省一些人的时间。

于 2012-10-23T10:12:28.327 回答
0

ADT 最新版本的主要问题是资源常量不能在 switch-case 语句中使用。解决方案是按照以下 URL 中的说明进行操作: http ://tools.android.com/tips/non-constant-fields 上的 switch-case 语句指示错误并将它们转换为 if-else。这种方式适用于 zxing2.1。

于 2013-02-12T14:15:41.127 回答