无法访问未找到java.awt.image.RenderedImage的RenderedImage类文件

时间:2016-09-09 10:25:56

标签: java android

我正在开发一个具有OCR模块的Android应用程序,在花了一些时间找到API之后,我发现了一个来自互联网的API。我已经下载了他们的jar文件并在我的项目中导入了(com.asprise.ocr.Ocr)它。我的目的是使用该库从我的SD中的图像中提取信息并将其显示在我的Android应用程序上,但是当我运行该项目时,我得到以下错误:

Error:(137, 35) error: cannot access RenderedImage
class file for java.awt.image.RenderedImage not found

从日志中我发现错误来自我的代码脚本下面的行:

String s = ocr.recognize(new File[]{file}, Ocr.RECOGNIZE_TYPE_ALL, `Ocr.OUTPUT_FORMAT_PLAINTEXT);

`

这是我的android代码部分:

try {
                Bitmap bitmap;
                BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
                bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(),
                        bitmapOptions);

                viewImage.setImageBitmap(bitmap);
                String path = android.os.Environment
                        .getExternalStorageDirectory()
                        + File.separator
                        + "Phoenix" + File.separator + "default";
                f.delete();
                OutputStream outFile = null;
                File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");

                ///////////////////////////////////////////
                Ocr.setUp(); // one time setup
                Ocr ocr = new Ocr(); // create a new OCR engine
                ocr.startEngine("eng", Ocr.SPEED_FASTEST); // English
                String s = ocr.recognize(new File[]{file}, Ocr.RECOGNIZE_TYPE_ALL, Ocr.OUTPUT_FORMAT_PLAINTEXT);
                System.out.println("Result: " + s);
                Toast.makeText(getBaseContext() ,"IMAGE INFORMATION: "+s ,Toast.LENGTH_SHORT).show();
                // ocr more images here ...
                ocr.stopEngine();

                //////////////////////////////

                try {
                    outFile = new FileOutputStream(file);
                    bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile);
                    outFile.flush();
                    outFile.close();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

任何人都可以帮助我解决如何从上面的Android代码脚本解决问题

1 个答案:

答案 0 :(得分:1)

确定,

您知道标准Android API中没有java.awt.image.RenderedImage类吗?

Android上的Java与常规PC上的Java不同,它没有所有相同的类和包,你知道吗?

因为并非所有的Java库都与Android开箱即用兼容。

如果您可以将java.awt.image.RenderedImage的源代码及其所有依赖项与常规java中的相同包名复制到您的应用程序中,那么您可以修复这些不可解决性错误。诀窍是将库所需的相同类添加到您的Android应用程序中,但是您可能需要编辑这些源以便与Android兼容,因此它可能比仅仅复制几个来源更多的工作。标准的“PC”java。

您可以尝试搜索专用的OCR for android。 或者,如果你坚持使用这个库,那么你需要自己动手。