Интеграция библиотеки soundtouch в проект Android Studio

Я пытаюсь интегрировать библиотеку soundtouch для изменения высоты тона и скорости воспроизведения аудиофайла wav. Но когда я добавляю его в проект, возникает ошибка, которая указана ниже

Информация: Задачи Gradle [:app:assembleDebug] /home/qwork/Android/android-ndk-r17/build/core/init.mk Ошибка: (537) * Android NDK: Прерывание... . Останавливаться. Ошибка:(537) * Ошибка:(537) *** Информация: BUILD FAILED Информация: Общее время: 14,586 с Информация: 3 ошибки Информация: 0 предупреждений Информация: См. полный вывод в консоли

Пожалуйста, помогите мне решить эту проблему.


person parikshit tiwari    schedule 18.09.2018    source источник
comment
как ты это делаешь?   -  person Gerry    schedule 18.09.2018
comment
сначала я интегрирую ndk в студию Android, затем импортирую собственный исходный код для подачи аудиофайла и устанавливаю скорость воспроизведения с этого URL-адреса gitlab. com/soundtouch/soundtouch и выполните процесс интеграции этой библиотеки, который указан по этому URL-адресу.   -  person parikshit tiwari    schedule 19.09.2018
comment
Для проекта Android верхний уровень — это скрипты сборки gradle; Модули C/C++, созданные путем добавления хуков ( CMake или ndk-build ) в скрипты gradle. Откройте Android Studio, создайте новый проект с заданным шаблоном и включите C/C++, когда он завершится, создайте и запустите его; затем добавьте свой звук в файл app/build.gradle.   -  person Gerry    schedule 19.09.2018
comment
Я создаю новый проект, но мой вопрос заключается в том, как интегрировать эту библиотеку в app/build.gradle, я имею в виду, поместить ее в папку jni или cpp или только в файл gradle. Я не понимаю процесс импорта этой библиотеки.   -  person parikshit tiwari    schedule 19.09.2018
comment
Возможно, проверьте мерж-реквест: gitlab.com/soundtouch/soundtouch/merge_requests. Это должно работать - используйте опцию открытого существующего проекта Android Studio, изучите и укажите его на build.gradle   -  person Gerry    schedule 19.09.2018
comment
Теперь он поддерживается в студии Android, но модуль приложения не содержит, поэтому пример проекта в библиотеке soundtouch не работает и показывает эту ошибку Ошибка обновления проекта Gradle «Android-lib» Ошибка: ожидается, что вызывающий абонент обеспечит действительный ABI: MIPS   -  person parikshit tiwari    schedule 19.09.2018
comment
NDK больше не поддерживает MIPS, не могли бы вы загрузить последнюю студию Android (3.1.4), она больше не должна запрашивать MIPS. также выполните git clean -xdf, чтобы получить свежий код (в основном о .externalNativeBuild dir)   -  person Gerry    schedule 19.09.2018
comment
Я загружаю последнюю студию Android (3.1.4). Но когда интегрируете необходимые папки soundtouch в папку cpp и вносите изменения в нативную библиотеку, возникают следующие проблемы: - Команда сборки не удалась. Ошибка при выполнении процесса /home/qwork/Android/Sdk/cmake/3.6.4111459/bin/cmake с аргументами {--build /home/qwork/Documents/FirstWallNew/app/.externalNativeBuild/cmake/debug/armeabi-v7a - -target native-lib} [1/2] Создание объекта CXX CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o [2/2] Связывание общей библиотеки CXX ../../ .././сборка/промежуточные/cmake/отладка/obj/armeabi-v7a/libnative-lib.so   -  person parikshit tiwari    schedule 20.09.2018
comment
для этого не используйте CMake: у вас уже есть метод ndk-build, просто используйте его. Студия Android поддерживает это. Они включаются относительно одновременно. Убедитесь, что SDK и NDK настроены для вашей студии Android, мой запрос на слияние должен работать. Или добавьте local.properties в каталог верхнего уровня, чтобы настроить sdk.dir = your-sdk-location и ndk.dir=ndk-location (это сделает то же самое)   -  person Gerry    schedule 20.09.2018


Ответы (1)


Общие шаги по преобразованию предыдущих проектов в последние проекты Android Studio

  1. Настройте Android Studio для использования последней версии SDK и NDK.

  2. Конвертировать с помощью Android Studio: файл › импорт или страница приветствия › Импорт проекта; разрешить студии Android загружать необходимые пакеты для этого проекта.

  3. Добавление вашего существующего Android.mk/Application.mk в ваше новое приложение/build.gradle

    android {
    ... // other autogenerated things, no need to change
    defaultConfig {
        ...
        // manually add your existing Application.mk with relative path to the
        // directory where THIS build.gradle is. Normally it could be
        // src/main/cpp/Application.mk as the build.gradle is at "app" dir.
        // Note that the configure items inside Application.mk could all be
        // directly set in "arguments" here ( "APP_STL=c++_static" etc)
        externalNativeBuild.ndkBuild {
            arguments "NDK_APPLICATION= src/main/cpp/Application.mk"
        }
    }
    
    // connect to the existing project's ndk-build build file, android.mk;
    // again, with the path that is relative to THIS build.gradle file's location.
    externalNativeBuild {
        ndkBuild {
            path 'src/main/cpp/Android.mk'
        }
    }
    
  4. Связывание зависимых модулей исходного кода: откройте Android.mk, проверьте все исходные файлы для этого модуля, и все зависимые модули по-прежнему находятся в правильном месте; если нет, измените путь в Android.mk или скопируйте их в нужное место. Это связано с тем, что инструмент преобразования не обрабатывает зависимые исходные файлы и модули.

  5. Наконец, выполните сборку: build › build APK (сделайте это дважды)

    Это должно привести вас к хорошему положению. Другой полезной вещью может быть свойство sourceSet которые позволяют вам изменить каталоги проекта по умолчанию

Для этого проекта SoundTouch правильным подходом является перенос его в сборку gradle в исходном репозитории. .

Надеюсь это поможет.

person Gerry    schedule 20.09.2018