【问题标题】:droidText unstaisfiedLink error while creating Image instance创建 Image 实例时 droidText unstaisfiedLink 错误
【发布时间】:2013-02-19 07:09:13
【问题描述】:

我在使用 droidText lib 创建 pdf 时不断收到 unstaisfied 链接错误。它是随机的,不会每次都发生

抛出它的那一行是:

Image image = Image.getInstance(url);

堆栈跟踪

02-19 12:09:02.534: E/AndroidRuntime(14477): FATAL EXCEPTION: Thread-10
02-19 12:09:02.534: E/AndroidRuntime(14477): java.lang.UnsatisfiedLinkError: cmmOpenProfile
02-19 12:09:02.534: E/AndroidRuntime(14477):    at org.apache.harmony.awt.gl.color.NativeCMM.cmmOpenProfile(Native Method)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at harmony.java.awt.color.ICC_Profile.<init>(ICC_Profile.java:324)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at harmony.java.awt.color.ICC_Profile.getInstance(ICC_Profile.java:645)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at com.lowagie.text.pdf.codec.PngImage.readPng(PngImage.java:425)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at com.lowagie.text.pdf.codec.PngImage.getImage(PngImage.java:515)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at com.lowagie.text.pdf.codec.PngImage.getImage(PngImage.java:230)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at com.lowagie.text.pdf.codec.PngImage.getImage(PngImage.java:212)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at com.lowagie.text.Image.getInstance(Image.java:275)
02-19 12:09:02.534: E/AndroidRuntime(14477):    at com.test.view.pdf.PdfCreation.getLogo(PdfCreation.java:1094)

关于我做错了什么或如何解决这个问题的任何指针。

【问题讨论】:

    标签: android pdf-generation android-droidtext


    【解决方案1】:

    droidtext 将部分 Apache Harmony 用于 awt 依赖项。当 png 图像具有 iCCP 块 (http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.iCCP) 时使用的 Harmony 的 ICC_Profile 实现依赖于本机库。这个本机代码现在不是 droidtext 的一部分。

    我在这里打开了一个问题:http://code.google.com/p/droidtext/issues/detail?id=6 并将对其进行调查。如果您可以在出现此问题的错误处附加一个 png,那就太好了。

    作为一种解决方法,您可以通过在 PngImage.java 中取消注释第 424-429 行来从 png 中删除颜色配置文件或阻止 droidText 应用它

    【讨论】:

    • 嗨,Markus,我们这次又遇到了这个问题,是 jpeg 图像(lib 版本 0.4)。我在上面提到的同一问题中附上了图像。如果你能看一次就太好了。谢谢!
    • 我无法重现所附图像的任何错误。将其读入字节数组,然后使用 Image.getInstance() 创建 pdf 图像对我有用。您能否将一些示例代码附加到 Google 代码问题以重现该问题。
    【解决方案2】:

    我遇到了类似的问题,我是这样解决的:

    检查您的 png 图像是否有一些奇怪的颜色配置文件。如果您使用 Photoshop 设计 png 图片,请使用“Convert to Profile...”并选择“sRGB IEC61966”,然后在“Save for Web”时勾选“Convert to sRGB”选项。

    有关颜色配置文件的更多信息,请阅读:https://imageoptim.com/color-profiles.htmlhttp://viget.com/inspire/the-mysterious-save-for-web-color-shift

    【讨论】:

      猜你喜欢
      • 2014-10-29
      • 1970-01-01
      • 2021-08-19
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多