This sample has been deprecated/archived meaning it's read-only and it's no longer actively maintained (more details on archiving can be found here).
For high performance audio, we recommend using the Oboe library for development. Thank you!
We now recommend you use the Oboe libraries:
Home Page: https://github.com/google/oboe
License: Apache License 2.0
This sample has been deprecated/archived meaning it's read-only and it's no longer actively maintained (more details on archiving can be found here).
For high performance audio, we recommend using the Oboe library for development. Thank you!
aaudio/utils/stream_builder.h assert(false) in the open() method seems harsh for something that can easily fail.
If the caller requests EXCLUSIVE mode then on some platforms it will succeed and on some platforms it will crash. Better to return nullptr and check in caller.
With the existing AAudio code I am getting around 1 sec latency when I use BT speakers as output. Is there any other way to reduce latency. Please help.
(Originally submitted by Pranusha-D-LnTTechServices)
And presumably other phones
Floating point representation has many advantages over int16, and is supported from Lollipop onwards. No reason not to use it.
Optional:
Currently sample gets the buffer size and frequency from Java side; the only used one is actually frequency. The buffer size used to read/write AAudio's internal circular buffer is HARDCODED to framesPerBuffer(), which does not depend on Java side code ( but by all means it should be the same value though ).
Need re-visit this area and remove Java side parameter pulling to avoid confusion, of course, after a good cup of tea with @philburk
For repeated experiments, it would be nice if the difficult-to-set parameters such as "Variable load"
could be remembered between test runs. (It is hard to set Variable load to a specific number)
To more clearly explain what a burst is
hello-aaudio has some latency tuning code which increases the buffer size if an underrun occurs. This is fine for normal use but sometimes when a stream is started a few underruns occur within the first few dataCallback calls. These underruns occur as part of the normal stream startup and should be ignored, rather than influencing the buffer size.
I'm running through the Google Codelab for this project. I pulled down the sample project "audio-echo" and updated the local.properties file with the location of the android-ndk. Tried to build it from Android Studio, but it won't even let me...complaining about an incompatible gradle plugin version. So I tried from command line and got the error pasted below. I'm not sure if this is a problem with the code or my android ndk? Any help would be awesome. Thanks in advance!
Atalanta:audio-echo amanda$ ./gradlew assembleDebug --stacktrace :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE :app:mergeDebugResources UP-TO-DATE :app:processDebugManifest UP-TO-DATE :app:processDebugResources UP-TO-DATE :app:generateDebugSources UP-TO-DATE :app:compileDebugJavaWithJavac UP-TO-DATE :app:copyArm64-v8aDebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createArm64-v8aDebugAudio-echoSharedLibraryGdbsetup The source property has been deprecated and is scheduled to be removed in Gradle 3.0. Please use the inputs property instead. :app:compileArm64-v8aDebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkArm64-v8aDebugAudio-echoSharedLibrary UP-TO-DATE :app:arm64-v8aDebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsArm64-v8aDebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildArm64-v8aDebugAudio-echoSharedLibrary :app:ndkBuildArm64-v8aDebugAudio-echoStaticLibrary UP-TO-DATE :app:copyArmeabi-v7aDebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createArmeabi-v7aDebugAudio-echoSharedLibraryGdbsetup :app:compileArmeabi-v7aDebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkArmeabi-v7aDebugAudio-echoSharedLibrary UP-TO-DATE :app:armeabi-v7aDebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsArmeabi-v7aDebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildArmeabi-v7aDebugAudio-echoSharedLibrary :app:ndkBuildArmeabi-v7aDebugAudio-echoStaticLibrary UP-TO-DATE :app:copyArmeabiDebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createArmeabiDebugAudio-echoSharedLibraryGdbsetup :app:compileArmeabiDebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkArmeabiDebugAudio-echoSharedLibrary UP-TO-DATE :app:armeabiDebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsArmeabiDebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildArmeabiDebugAudio-echoSharedLibrary :app:ndkBuildArmeabiDebugAudio-echoStaticLibrary UP-TO-DATE :app:copyMips64DebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createMips64DebugAudio-echoSharedLibraryGdbsetup :app:compileMips64DebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkMips64DebugAudio-echoSharedLibrary UP-TO-DATE :app:mips64DebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsMips64DebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildMips64DebugAudio-echoSharedLibrary :app:ndkBuildMips64DebugAudio-echoStaticLibrary UP-TO-DATE :app:copyMipsDebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createMipsDebugAudio-echoSharedLibraryGdbsetup :app:compileMipsDebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkMipsDebugAudio-echoSharedLibrary UP-TO-DATE :app:mipsDebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsMipsDebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildMipsDebugAudio-echoSharedLibrary :app:ndkBuildMipsDebugAudio-echoStaticLibrary UP-TO-DATE :app:copyX86DebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createX86DebugAudio-echoSharedLibraryGdbsetup :app:compileX86DebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkX86DebugAudio-echoSharedLibrary UP-TO-DATE :app:x86DebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsX86DebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildX86DebugAudio-echoSharedLibrary :app:ndkBuildX86DebugAudio-echoStaticLibrary UP-TO-DATE :app:copyX86_64DebugAudio-echoSharedLibraryGdbServer UP-TO-DATE :app:createX86_64DebugAudio-echoSharedLibraryGdbsetup :app:compileX86_64DebugAudio-echoSharedLibraryAudio-echoMainCpp UP-TO-DATE :app:linkX86_64DebugAudio-echoSharedLibrary UP-TO-DATE :app:x86_64DebugAudio-echoSharedLibrary UP-TO-DATE :app:stripSymbolsX86_64DebugAudio-echoSharedLibrary UP-TO-DATE :app:ndkBuildX86_64DebugAudio-echoSharedLibrary :app:ndkBuildX86_64DebugAudio-echoStaticLibrary UP-TO-DATE :app:debug :app:compileDebugSources :app:transformClassesAndResourcesWithExtractJarsForDebug UP-TO-DATE :app:transformClassesWithDexForDebug UP-TO-DATE :app:processDebugJavaRes UP-TO-DATE :app:transformResourcesWithMergeJavaResForDebug UP-TO-DATE :app:validateDebugSigning :app:packageDebug UP-TO-DATE :app:zipalignDebug UP-TO-DATE :app:assembleDebug :howie:compileLint :howie:copyDebugLint UP-TO-DATE :howie:copyArm64-v8aDebugHowieSharedLibraryGdbServer UP-TO-DATE :howie:createArm64-v8aDebugHowieSharedLibraryGdbsetup :howie:compileArm64-v8aDebugHowieSharedLibraryHowieMainCpp UP-TO-DATE :howie:linkArm64-v8aDebugHowieSharedLibrary /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(condition_variable.o): In function
__clang_call_terminate':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/condition_variable.cpp:(.text.__clang_call_terminate[_clang_call_terminate]+0x8): undefined reference to __cxa_begin_catch' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/condition_variable.cpp:(.text.__clang_call_terminate[__clang_call_terminate]+0xc): undefined reference to
std::terminate()'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++static.a(condition_variable.o):(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to __gxx_personality_v0' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(mutex.o): In function
std::__ndk1::_call_once(unsigned long volatile&, void, void ()(void))':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/mutex.cpp:251: undefined reference to __cxa_begin_catch' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/mutex.cpp:262: undefined reference to
__cxa_rethrow'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/mutex.cpp:263: undefined reference to __cxa_end_catch' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o): In function
~system_error':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/system_error.cpp:201: undefined reference to std::runtime_error::~runtime_error()' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/system_error.cpp:201: undefined reference to
std::runtime_error::~runtime_error()'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o): In function std::__ndk1::__throw_system_error(int, char const_)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/system_error.cpp:207: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/system_error.cpp:207: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/system_error.cpp:207: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o): In functionstd::__ndk1::__basic_string_common<true>::__throw_length_error() const': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference to
__cxa_allocate_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o): In functionlength_error': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/stdexcept:123: undefined reference to
vtable for std::length_error'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/stdexcept:123: undefined reference tovtable for std::length_error' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o): In function
std::__ndk1::__basic_string_common::__throw_length_error() const':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference totypeinfo for std::length_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference to
std::length_error::~length_error()'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference totypeinfo for std::length_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference to
std::length_error::~length_error()'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/string:1210: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0x68): undefined reference tostd::runtime_error::what() const' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0x70): undefined reference to
vtable for __cxxabiv1::__si_class_type_info'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0x80): undefined reference totypeinfo for std::runtime_error' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0x88): undefined reference to
vtable for __cxxabiv1::__class_type_info'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0xe0): undefined reference tovtable for __cxxabiv1::__si_class_type_info' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0x140): undefined reference to
vtable for __cxxabiv1::__si_class_type_info'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(system_error.o):(.data.rel.ro+0x1a0): undefined reference tovtable for __cxxabiv1::__si_class_type_info' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(thread.o): In function
~thread':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:37: undefined reference tostd::terminate()' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(thread.o): In function
std::__ndk1::thread::join()':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:46: undefined reference to__cxa_allocate_exception' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:46: undefined reference to
__cxa_throw'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:46: undefined reference to__cxa_free_exception' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(thread.o): In function
std::__ndk1::thread::detach()':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:65: undefined reference to__cxa_allocate_exception' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:65: undefined reference to
__cxa_throw'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/thread.cpp:65: undefined reference to__cxa_free_exception' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(thread.o): In function
__thread_specific_ptr':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/thread:151: undefined reference to__cxa_allocate_exception' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/thread:151: undefined reference to
__cxa_throw'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/thread:151: undefined reference to__cxa_free_exception' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In function
~future_error':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:81: undefined reference tostd::logic_error::~logic_error()' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:81: undefined reference to
std::logic_error::~logic_error()'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::__assoc_sub_state::set_value()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:95: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:95: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:95: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::__assoc_sub_state::set_value_at_thread_exit()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:108: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:108: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:108: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::__assoc_sub_state::set_exception(std::exception_ptr)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:121: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:121: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:121: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::__assoc_sub_state::set_exception_at_thread_exit(std::exception_ptr)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:135: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:135: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:135: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::__assoc_sub_state::__execute()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:188: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:188: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:188: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionfuture': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:197: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:197: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:197: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In function~future_error': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:81: undefined reference to
std::logic_error::~logic_error()'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:81: undefined reference tostd::logic_error::~logic_error()' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In function
std::exception_ptr std::make_exception_ptrstd::__ndk1::future_error(std::__ndk1::future_error)':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/exception:160: undefined reference to__cxa_allocate_exception' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/exception:160: undefined reference to
__cxa_throw'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/exception:161: undefined reference to__cxa_begin_catch' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/exception:165: undefined reference to
__cxa_end_catch'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::promise<void>::get_future()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:240: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:240: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:240: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::promise<void>::set_value()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:250: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:250: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:250: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::promise<void>::set_exception(std::exception_ptr)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:260: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:260: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:260: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::promise<void>::set_value_at_thread_exit()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:270: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:270: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:270: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o): In functionstd::__ndk1::promise<void>::set_exception_at_thread_exit(std::exception_ptr)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:280: undefined reference to
__cxa_allocate_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:280: undefined reference to__cxa_throw' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/future.cpp:280: undefined reference to
__cxa_free_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o):(.data.rel.ro+0x20): undefined reference tostd::logic_error::what() const' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o):(.data.rel.ro+0x30): undefined reference to
vtable for __cxxabiv1::__si_class_type_info'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o):(.data.rel.ro+0x40): undefined reference totypeinfo for std::logic_error' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o):(.data.rel.ro+0x80): undefined reference to
vtable for __cxxabiv1::__si_class_type_info'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(future.o):(.data.rel.ro+0xe0): undefined reference tovtable for __cxxabiv1::__si_class_type_info' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(memory.o): In function
~bad_weak_ptr':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/memory.cpp:38: undefined reference tostd::exception::~exception()' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/memory.cpp:38: undefined reference to
std::exception::~exception()'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(memory.o):(.data.rel.ro+0x28): undefined reference tovtable for __cxxabiv1::__class_type_info' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(memory.o):(.data.rel.ro+0x70): undefined reference to
vtable for __cxxabiv1::__vmi_class_type_info'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(memory.o):(.data.rel.ro+0xc0): undefined reference tovtable for __cxxabiv1::__si_class_type_info' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(memory.o):(.data.rel.ro+0xd0): undefined reference to
typeinfo for std::exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(stdexcept.o): In functionlogic_error': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:31: undefined reference to
vtable for std::logic_error'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:31: undefined reference tovtable for std::logic_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:32: undefined reference to
std::exception::~exception()'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:35: undefined reference tovtable for std::logic_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:35: undefined reference to
vtable for std::logic_error'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:36: undefined reference tostd::exception::~exception()' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:39: undefined reference to
vtable for std::logic_error'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:39: undefined reference tovtable for std::logic_error' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(stdexcept.o): In function
runtime_error':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:64: undefined reference tovtable for std::runtime_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:64: undefined reference to
vtable for std::runtime_error'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:65: undefined reference tostd::exception::~exception()' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:68: undefined reference to
vtable for std::runtime_error'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:68: undefined reference tovtable for std::runtime_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:69: undefined reference to
std::exception::~exception()'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:73: undefined reference tovtable for std::runtime_error' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/stdexcept.cpp:73: undefined reference to
vtable for std::runtime_error'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In functionstd::uncaught_exception()': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:113: undefined reference to
__cxa_uncaught_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In function~exception_ptr': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:184: undefined reference to
__cxa_decrement_exception_refcount'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In functionexception_ptr': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:202: undefined reference to
__cxa_increment_exception_refcount'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In functionstd::exception_ptr::operator=(std::exception_ptr const&)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:222: undefined reference to
__cxa_increment_exception_refcount'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:223: undefined reference to__cxa_decrement_exception_refcount' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In function
std::current_exception()':
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:273: undefined reference to__cxa_current_primary_exception' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:273: undefined reference to
__cxa_current_primary_exception'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In function~exception_ptr': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:184: undefined reference to
__cxa_decrement_exception_refcount'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:184: undefined reference to__cxa_decrement_exception_refcount' /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:184: undefined reference to
__cxa_decrement_exception_refcount'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In functionstd::nested_exception::rethrow_nested() const': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:260: undefined reference to
std::terminate()'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In functionexception_ptr': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:202: undefined reference to
__cxa_increment_exception_refcount'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In function~exception_ptr': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:184: undefined reference to
__cxa_decrement_exception_refcount'
/Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o): In functionstd::rethrow_exception(std::exception_ptr)': /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:292: undefined reference to
__cxa_rethrow_primary_exception'
/Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++/libcxx/src/exception.cpp:294: undefined reference tostd::terminate()' /Users/amanda/development/tools/android/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a(exception.o):(.data.rel.ro+0x20): undefined reference to
vtable for __cxxabiv1::__class_type_info'
collect2: error: ld returned 1 exit status
:howie:linkArm64-v8aDebugHowieSharedLibrary FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':howie:linkArm64-v8aDebugHowieSharedLibrary'.
A build operation failed.
Linker failed while linking libhowie.so.
See the complete log at: file:///Users/amanda/development/learning/android-audio-high-performance/howie/build/tmp/linkArm64-v8aDebugHowieSharedLibrary/output.txt
Try:
Run with --info or --debug option to get more log output.
Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':howie:linkArm64-v8aDebugHowieSharedLibrary'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:158)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:36)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:103)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:97)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:97)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:102)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:32)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:77)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:47)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51)
at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43)
at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35)
at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:33)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35)
at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: org.gradle.internal.operations.MultipleBuildOperationFailures: A build operation failed.
Linker failed while linking libhowie.so.
See the complete log at: file:///Users/amanda/development/learning/android-audio-high-performance/howie/build/tmp/linkArm64-v8aDebugHowieSharedLibrary/output.txt
at org.gradle.internal.operations.DefaultBuildOperationQueue.waitForCompletion(DefaultBuildOperationQueue.java:72)
at org.gradle.nativeplatform.toolchain.internal.gcc.GccLinker.execute(GccLinker.java:64)
at org.gradle.nativeplatform.toolchain.internal.gcc.GccLinker.execute(GccLinker.java:36)
at org.gradle.nativeplatform.internal.BuildOperationLoggingCompilerDecorator.execute(BuildOperationLoggingCompilerDecorator.java:38)
at org.gradle.nativeplatform.internal.BuildOperationLoggingCompilerDecorator$execute$0.call(Unknown Source)
at org.gradle.nativeplatform.tasks.AbstractLinkTask.link(AbstractLinkTask.groovy:125)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 60 more
Caused by: org.gradle.nativeplatform.toolchain.internal.CommandLineToolInvocationFailure: Linker failed while linking libhowie.so.
at org.gradle.nativeplatform.toolchain.internal.DefaultCommandLineToolInvocationWorker.execute(DefaultCommandLineToolInvocationWorker.java:83)
at org.gradle.nativeplatform.toolchain.internal.DefaultCommandLineToolInvocationWorker.execute(DefaultCommandLineToolInvocationWorker.java:30)
at org.gradle.internal.operations.DefaultBuildOperationQueue$OperationHolder.run(DefaultBuildOperationQueue.java:110)
at org.gradle.internal.concurrent.ExecutorPolicy$PropagateFailures.onExecute(ExecutorPolicy.java:76)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
BUILD FAILED
Total time: 8.152 secs
`
We need a high level overview of the code sample architecture and the reasons behind it, particularly focussing on the lock-free, multi-threaded nature of the library.
After creating a looping back audio, play it on Android-M Nexus 9 ( Nexus9 + Android L works!), I could hear the recorded sound. The quality is low:
it more likes replaying a recorded twice, the music is not a continuous tone ( it is continuous on Android L ).
with adb logcat, I saw:
com.google.sample.androidaudiosample W/HOWIE: GLITCH: missed a record buffer
com.google.sample.androidaudiosample W/HOWIE: GLITCH: missed a record buffer
how to replicate this:
HowieError ProcessCallback(
const HowieStream stream,
const HowieBuffer *input,
const HowieBuffer *output,
const HowieBuffer *state,
const HowieBuffer *params)
{
StreamState *streamState = reinterpret_cast<StreamState>(state->data);
streamState->bufCount_++;
assert(input->byteCount == output->byteCount);
memcpy(output->data, input->data, output->byteCount);
return HOWIE_SUCCESS;
}
JNIEXPORT jlong JNICALL
Java_com_google_sample_androidaudiosample_SampleMainActivity_start(JNIEnv *env, jobject instance) {
android_log_print(ANDROID_LOG_INFO, "AUDIO-ECHO", "%s", __func);
HowieStreamCreationParams streamInfo = {
sizeof(HowieStreamCreationParams),
HOWIE_STREAM_DIRECTION_BOTH,
DeviceChangedCallback,
ProcessCallback,
CleanupCallback,
sizeof(StreamState),
sizeof(StreamParam),
HOWIE_STREAM_STATE_PLAYING
};
HowieStream *stream = nullptr;
if (HOWIE_SUCCESS != HowieStreamCreate(&streamInfo, &stream)) {
__android_log_print(ANDROID_LOG_ERROR, "AUDIO-ECHO", "%s failed", __FUNCTION__);
}
return reinterpret_cast<jlong>(stream);
}
JNIEXPORT void JNICALL
Java_com_google_sample_androidaudiosample_SampleMainActivity_stop(JNIEnv env, jobject instance,
jlong streamId) {
HowieStream stream = reinterpret_cast<HowieStream*>(streamId);
HowieStreamDestroy(stream);
}
and the OpenSL ES doesn't contain anchors either which makes it arduous to find the relevant content within the page
link should refer to android-audio-high-performance [it is using android-high-performance-audio]
Sample output:
10-09 15:21:24.502 10673-10673/com.example.hellolowlatencyoutput V/HOWIE: HowieError HowieStreamSendParameters(HowieStream_, const void_, size_t)
there is init() to initialize the HowieEngine, the lib should provide a pairing function to cleanup and expose it to client to call.
There is a table cell in the wrong place at the bottom of this page. It sticks out of the table.
http://googlesamples.github.io/android-audio-high-performance/resources/miscellaneous.html
It is caused by incorrect rowspans.
On Nexus 9 in particular, if the screen is not being touched regularly the CPU governer will kick in, reducing the CPU frequency. This can cause audio dropouts. The solution is to simulate a touch event every second.
Example Java code:
Instrumentation instrumentation = new Instrumentation(); instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACKSLASH);
Right now sample is just using normal std thread; need update it to use AAudio's thread API, which is created by AAudio and it will be in high priority ( it is not at the moment at the bug creating time); nevertheless, once changed to use AAudio thread, whatever AAudio's change inside is transparent to Sample.
This is important for samplers which may need to trigger a recording with the minimum possible latency from touch to record.
goto: https://googlesamples.github.io/android-audio-high-performance/resources/miscellaneous.html
Check for "OpenSL ES" row, the link is not live, might be broken, it displays:
<NDK_ROOT>/docs/Additional_library_docs/
opensles/index.html
There's a bug in the MainActivity.onStop method which removes the listeners.
This means the sample does not run on most other devices, such as Nexus 5.
Suggest merging into a single page
On this line: https://github.com/googlesamples/android-audio-high-performance/blob/master/howie/src/main/jni/private/StreamImpl.cpp#L372
shouldn't the variable be "lastRecordError_" instead of "lastPlaybackError_"?
After starting an input stream, the state gets stuck in the STARTING state and does not ever reach STARTED. Despite this the stream can still be read from.
Internal bug: 62781173
A crash happened when I run the "hello-aaudio" project.
`E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.google.sample.com.google.sample.aaudio.play, PID: 27133
java.lang.UnsatisfiedLinkError: dlopen failed: library "libaaudio.so" not found
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at com.google.sample.aaudio.play.MainActivity.(MainActivity.java:92)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1095)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3083)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7225)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)`
when NDK-r15 is available, remove AAudio wrapper in samples and use the header files and lib inside NDK
when clicking on the Development Guides, the page coming up displaying:
"Choose from the guides on the left"
maybe provide a more technical high level description about the overall audio system on android, including input latency and Output latency, Sample Rates, floating point audio etc. would that be useful?
The destructor ~EchoAudioEngine() should
delete audioEffect_;
NDK version: 15.0.3996722 rc2
05-19 16:41:10.558 4755-4755/com.google.sample.com.google.sample.aaudio.play E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.google.sample.com.google.sample.aaudio.play, PID: 4755
java.lang.UnsatisfiedLinkError: dlopen failed: library "libaaudio.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:989)
at java.lang.System.loadLibrary(System.java:1530)
at com.google.sample.aaudio.play.MainActivity.(MainActivity.java:92)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2557)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
and there is libaaudio.so in ndk-bundle/platforms/android-26/${arch}/usr/lib/
force java 7 compatibility in all module gradle files with at model { } level
compileOptions.with {
sourceCompatibility=JavaVersion.VERSION_1_7
targetCompatibility=JavaVersion.VERSION_1_7
}
this way if someone using java8 to compile it will still work
Which is probably the most important thing.
Navigation is a bit weird, that "Choose from the guides on the left" flow feels broken
The one important category I missed in the list of use cases was "Music learning apps"
On this page: http://googlesamples.github.io/android-audio-high-performance/guides/opensl_es.html
I propose adding a table of contents which will make it easier for the reader to jump to relevant sections. It also allows links to specific sections from other web pages. This avoids having to give the reader instructions on where to find content, for example the "Checklist" section of this page: http://googlesamples.github.io/android-audio-high-performance/guides/audio-input-latency.html.
On MIDI FAQ "Q. Yes, there are several open source implementations, including" should start with "A." not "Q.".
FAQS/Miscellaneous is a bit obscure. Maybe call it FAQS/Links
Steps to repro:
Expected result
Actual result
Tested on Pixel XL running O DP4
I installed a fresh Android Studio and build the AAudio Samples.
I noticed that when "echo" exits that it crashes.
It seems to call closeStream(recordingStream_) twice.
Once in stop and then again in a destructor.
It is deleted the first time and crashes the second.
It should set recordingStream_ = nullptr after closing.
and then always check it before closing.
What component should I file a bug in. Or is this a known issue?
In several places the AAudio example programs reference these deprecated functions:
AAudioStreamBuilder_setSamplesPerFrame
AAudioStream_getSamplesPerFrame
They should be using these functions instead:
AAudioStreamBuilder_setChannelCount
AAudioStream_getChannelCount
Search "This Repository" above using the complete function name to find all the references.
Steps to repro:
Expected result:
Actual result
jni_bridge.cc needs methods to stop and destroy the audio engine.
How to reproduce:
Launch SimpleSynth
Press Variable load
Press Variable load
Press Variable load
09-07 14:27:11.944 11796 11796 D AndroidRuntime: Shutting down VM
09-07 14:27:11.947 11796 11796 E AndroidRuntime: FATAL EXCEPTION: main
09-07 14:27:11.947 11796 11796 E AndroidRuntime: Process: com.example.simplesynth, PID: 11796
09-07 14:27:11.947 11796 11796 E AndroidRuntime: java.lang.IllegalThreadStateException
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at java.lang.Thread.start(Thread.java:724)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at com.example.simplesynth.MainActivity$2.onCheckedChanged(MainActivity.java:191)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.widget.CompoundButton.setChecked(CompoundButton.java:171)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.widget.Switch.setChecked(Switch.java:1083)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.widget.Switch.toggle(Switch.java:1078)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.widget.CompoundButton.performClick(CompoundButton.java:132)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.view.View$PerformClick.run(View.java:24734)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:790)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6519)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
09-07 14:27:11.947 11796 11796 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:816)
It is quite possible for AAudio_openStream(), AAudioStream_requestStart() and other AAudio functions to return an error code. These codes should be passed all the way up to the Java code so that the user can be alerted.
Steps to reproduce:
Expected result:
Actual result:
This causes infinitely nested blocks in the systrace
When running the aaudio-echo sample I get the following logcat output:
W/AudioRecord: AUDIO_INPUT_FLAG_FAST denied by client; transfer 3, track 48000 Hz, input 48000 Hz
This can be solved by not calling AAudioStreamBuilder_setDataCallback(builder_, callback, userData);
when creating the input stream. However, this leads to a race condition because the output stream callbacks have already started but the input stream hasn't, and therefore cannot be read from.
See internal bug 62675917
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.