точка входа не найдена исключение единства андроид - PullRequest
0 голосов
/ 17 октября 2018

Я пытался интегрировать Picovoice Porcupine (https://github.com/Picovoice/Porcupine) в демонстрационную демонстрацию концепции, созданную для ARMv7 Android в Unity. Я пытаюсь получить доступ к библиотеке ARMv7 .so, поставляемой в репозитории GitHub, с помощью функции DllImportБиблиотека, кажется, загружается правильно (так как я не получаю DllNotFoundException), однако я испытываю исключения EntryPointNotFoundException при попытке вызвать собственные функции. Я думаю, что, возможно, я объявляю вызовы функций неправильно - если вы можете помочь мне увидеть, где я 'я ошибаюсь, я был бы очень признателен!

Я включил соответствующий код ниже вместе с нативными вызовами Java из демонстрации Android, которую я использовал в качестве справки.

Ссылка на Java:

private native long init(String modelFilePath, String[] keywordFilePaths, float[] sensitivities);

private native int process(long object, short[] pcm);

private native void delete(long object);

Код Unity:

public class PorcupineManager : ScriptableObject {

...

[DllImport("pv_porcupine")]
    private static extern long init(string modelFilePath, string[] keywordFilePaths, float[] sensitivities);
    [DllImport("pv_porcupine")]
    private static extern int process(long porcupineObjectId, short[] pcm);
    [DllImport("pv_porcupine")]
    private static extern void delete(long porcupineObjectId);

    public void Init() {
        porcupineObject = init(Path.Combine(Application.dataPath, modelPath), new string[] { Path.Combine(Application.dataPath, keywordPath)}, new float[] { sensitivity });
    }
...

}

Выдержка из журнала:

2018-10-16 17: 51: 06.654 19176-19208 / com.meowtek.commandandcontrol E / Unity: EntryPointNotFoundException: init at (управляемая оболочкой управляемая на родную) PorcupineManager: init (string, string [], single []) в PorcupineManager.Init () [0x0006e] в / Users / Ronan / Unity Projects / CommandAndControl / Assets / Scripts / Porcupine / PorcupineManager.cs: 40 в PorcupineTest + c__Iterator0.MoveNext () [0x0005d] в / Users / Ronan / Unity Projects / CommandAndControl / Assets / Scripts / Porcupine / PorcupineTest.cs: 17 в UnityEngine.SetupCoroutine.InvokeMoveNext (перечислитель IEnumerator, IntPtr return / Invalue 0 0 0) 0buildslave / unity / build / Runtime / Export / Coroutines.cs: 17

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...