0

我的包裹是:com.abdulwasaetariq.odnvt. 我有一个名为的文件tessdatares/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/并使用AssetManager将文件复制到您的设备。

于 2016-07-05T13:58:24.613 回答