0
我的代码需要在Linux机器和Android移动设备之间迁移。它执行基本的图像处理,并使用Linux上的ImageIO和Android上的BitmapFactory来加载jpeg图像。所以,我发现环境和调用适当的方法如下:使用不同的库在Android和JVM上执行SAME程序
if (isDalvik()) {
Bitmap bi = BitmapFactory.decodeStream(this.getClass().getResourceAsStream("test.jpg"));
this.findFaces_Android(bi, 1, 40, new File("result.jpg"));
} else {
BufferedImage bi = ImageIO.read(Exp_Starter.class.getResourceAsStream("test.jpg"));
this.findFaces_J2SE(bi, 1, 40, new File("result.jpg"));
}
因为我已经放在的android.jar在类路径。这在Linux上工作正常。但是,它无法在Android上运行。在启动时,声明无法找到BufferedImage和ImageIO类,尽管它们实际上从未被调用,因为else语句将不会被执行。
我试图为Android应用程序创建java.awt.image.BufferedImage和javax.imageio.ImageIO的空类,但编译器不允许覆盖它们。
有关如何解决此问题并使SAME程序在两种不同环境中均可工作的任何想法?
您是否需要像在Linux上一样将这些jar添加到类路径中? – TheNorthWes
尝试将else部分移动到单独的方法中。 –
代码首先编译为错误,然后执行。在编译时,它不检查if-else,它只转换语句。所以即使它不需要执行bufferedImage和ImageIO,它仍然需要类。因此你得到一个错误。 – Aradhna