0

私のパッケージは:com.abdulwasaetariq.odnvtです。tessdataという名前のフォルダーがありますres/raw/

Tesseract API には、この init 関数があり、そのドキュメントとプロトタイプは次のとおりです。

/* @param datapath the parent directory of tessdata ending in a forward
 *            slash
 * @param language an ISO 639-3 string representing the language(s)
 * @return <code>true</code> on success
 */
public boolean init(String datapath, String language) {
    return init(datapath, language, OEM_DEFAULT);
}

インターネットで調べると、リソース ファイルへのパスを指定する方法は次のようになります。android.resource://com.packageName

しかし、私はエラーが発生していますjava.lang.IllegalArgumentException: Data path does not exist!

ここに私の関連コードがあります:

    private static void initTess() {
    String dataPath = "android.resource://"+ context.getPackageName() + "/raw/";
    Log.d(TAG, "initTess: dataPath: " + dataPath);
    tessBaseAPI.init(dataPath,"eng");
}

実際、context.getPackageName()正しいパッケージ名を取得しますcom.abdulwasaetariq.odnvt

どこが悪いのかしら。

4

1 に答える 1

3

問題は、アプリのフォルダー内のリソースandroid.resource://にアクセスする有効な方法ではないため、表示されるエラー メッセージは無効なパスが原因であるということです。res/raw/

代わりに、ファイルを に移動し、AssetManagerassets/を使用してファイルをデバイスにコピーしてみてください。

于 2016-07-05T13:58:24.613 に答える