在Android中使用ImageMagick时出错 - JMagick(java.lang.RuntimeException:无法加载MagickLoader)

3

我正在尝试在Android应用程序中使用ImageMagick(JMagick),但出现了以下异常:

java.lang.ExceptionInInitializerError
E/AndroidRuntime(10318):    at com.example.testingjmagickthird.MyActivity.generateAnimation(MyActivity.java:28)
E/AndroidRuntime(10318):    at com.example.testingjmagickthird.MyActivity.onCreate(MyActivity.java:23)
E/AndroidRuntime(10318):    at android.app.Activity.performCreate(Activity.java:5184)
E/AndroidRuntime(10318):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
E/AndroidRuntime(10318):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
E/AndroidRuntime(10318):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
E/AndroidRuntime(10318):    at android.app.ActivityThread.access$600(ActivityThread.java:140)
E/AndroidRuntime(10318):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
E/AndroidRuntime(10318):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(10318):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(10318):    at android.app.ActivityThread.main(ActivityThread.java:4898)
E/AndroidRuntime(10318):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(10318):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(10318):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
E/AndroidRuntime(10318):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
E/AndroidRuntime(10318):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(10318): Caused by: java.lang.RuntimeException: Can't load MagickLoader

这里是触发此操作的实际代码:
String path = Environment.getExternalStorageDirectory() + "/car.jpg";
MagickImage image = new MagickImage(new ImageInfo(path));

路径正确,相同的代码可以使用不同的ImageMagick库运行。
我正在使用JMagick 6.6.9(http://mvnrepository.com/artifact/jmagick/jmagick),这是我的POM文件依赖:
<dependency>
    <groupId>jmagick</groupId>
    <artifactId>jmagick</artifactId>
    <version>6.6.9</version> 
</dependency>

任何想法?

你解决了这个问题吗?我在 Enviornment.getExternalStorageDirectory() 这一行也遇到了同样的错误。当我正常测试时,它会给我 ExceptionInInitializerError,但是当我启动 Android 应用程序时,它像往常一样工作。 - Abhijit Chakra
我最终没有使用JMagick,因为无法使其正常工作,而是使用了另一个库(找到了NeuQuant算法的Java实现)。 - Cat
1个回答

0

如果您不需要明确使用JMagick,您可以使用ImageMagick的另一个Java绑定:im4java

<dependency>
  <groupId>org.im4java</groupId>
  <artifactId>im4java</artifactId>
  <version>1.4.0</version>
</dependency>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接