2016-09-09 9 views
1

OCR用のモジュールを搭載したアンドロイドアプリを開発しています。これを実行するためにいつかAPIを見つけると、特定のAPIが見つかりましたインターネット。 jarファイルをダウンロードして、プロジェクト(com.asprise.ocr.Ocr)にインポートしました。私の意図は、私のSDに画像から情報を抽出し、私のアンドロイドアプリケーション上でそれらを表示するためのライブラリを使用することですが、私はプロジェクトを実行するとき、私は以下のエラーを取得:java.awt.image.RenderedImageのRenderedImageクラスファイルにアクセスできない

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(); 
      } 
     } 

誰もがOK上記のアンドロイドコードスクリプト

答えて

1

から問題を解決する方法で私を助けることができ、

あなたはjava.awt.image.RenderedImageとしてはそのようなクラスは、標準のAndroid APIにありませんことを知っていますか?

Android上のJavaは、通常のPCと同じJavaではありません。すべてのクラスとパッケージが同じではありません。

そのため、すべてのJavaライブラリがAndroidとすぐに互換性があるわけではありません。

java.awt.image.RenderedImageのソースコードとそのすべてを通常のjavaと同じパッケージ名でアプリケーションにコピーできたら、それらの不可能なエラーを修正できます。そのトリックは、あなたのAndroidアプリにライブラリで必要なものと同じクラスを追加することですが、おそらくあなたはAndroidの互換性を持つようにそれらのソースを編集する必要があります。標準の "PC" java。

代わりにアンドロイド専用のOCRを検索することができます。 またはこのライブラリを主張する場合は、自分で動作させる必要があります。

関連する問題