我只是尝试将我的项目从zxing core 2.3.0更新到3.0.0并体验这个charset问题。不确定这是否是一个错误,或者我现在必须以某种方式提供字符集 - 任何人都可以了解它吗?我应该在github上为此打开一个问题,还是可以以任何方式提供字符集?
java.lang.ExceptionInInitializerError
E/AndroidRuntime( 4287): at com.google.zxing.pdf417.encoder.PDF417.<init>(PDF417.java:531)
E/AndroidRuntime( 4287): at com.google.zxing.pdf417.encoder.PDF417.<init>(PDF417.java:525)
E/AndroidRuntime( 4287): at com.google.zxing.pdf417.PDF417Writer.encode(PDF417Writer.java:52)
E/AndroidRuntime( 4287): at com.google.zxing.MultiFormatWriter.encode(MultiFormatWriter.java:94)
E/AndroidRuntime( 4287): at com.google.zxing.MultiFormatWriter.encode(MultiFormatWriter.java:47)
E/AndroidRuntime( 4287): at org.ligi.passandroid.helper.BarcodeHelper.getBitMatrix(BarcodeHelper.java:51)
E/AndroidRuntime( 4287): at org.ligi.passandroid.helper.BarcodeHelper.generateBarCodeBitmap(BarcodeHelper.java:23)
E/AndroidRuntime( 4287): at org.ligi.passandroid.model.Passbook.getBarcodeBitmap(Passbook.java:322)
E/AndroidRuntime( 4287): at org.ligi.passandroid.ui.TicketViewActivity.onCreate(TicketViewActivity.java:86)
E/AndroidRuntime( 4287): at android.app.Activity.performCreate(Activity.java:5008)
E/AndroidRuntime( 4287): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
E/AndroidRuntime( 4287): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
E/AndroidRuntime( 4287): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
E/AndroidRuntime( 4287): at android.app.ActivityThread.access$600(ActivityThread.java:130)
E/AndroidRuntime( 4287): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
E/AndroidRuntime( 4287): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 4287): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 4287): at android.app.ActivityThread.main(ActivityThread.java:4745)
E/AndroidRuntime( 4287): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 4287): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 4287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
E/AndroidRuntime( 4287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
E/AndroidRuntime( 4287): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 4287): Caused by: java.nio.charset.UnsupportedCharsetException: Cp437
E/AndroidRuntime( 4287): at java.nio.charset.Charset.forName(Charset.java:303)
E/AndroidRuntime( 4287): at com.google.zxing.pdf417.encoder.PDF417HighLevelEncoder.<clinit>(PDF417HighLevelEncoder.java:128)
E/AndroidRuntime( 4287): ... 23 more
答案 0 :(得分:3)
是的,它是Java的扩展字符集。名称是对的,PDF417默认需要它。 Android可能不支持它。如果您选择不同的编码会发生什么?如果您必须在Android上对此格式进行编码,这可能是最佳答案。
编辑:这主要是解决方法。 https://github.com/zxing/zxing/issues/105