¿Cuál es el comportamiento si una aplicación de Android NDK carga más de una implementación compartida de STL de C ++?
Tenemos una aplicación de Android con varias bibliotecas nativas. Actualmente, la mayoría de ellos usan stlport_shared
, pero estamos interesados en actualizar a c++_shared
(el tiempo de ejecución de LLVM libc ++). Si tuviéramos que actualizar algunos de ellos, pero no otros, tendríamos que cargar tanto stlport como llvm.
Me imaginé que la carga de dos implementaciones de la STL podría causar problemas, pero en la práctica la aplicación parece funcionar correctamente. ¿Es este comportamiento indefinido, o es permitido cargar más de una implementación STL?
- Vinculación de STL a un ejecutable NDK independiente de Android
- Uso de la STL con Android NDK C ++
- Uso de NDK con STL en Android Studio gradle project
- ¿Cuál es la diferencia entre gnustl y stlport en el desarrollo android ndk?
- Manejo de excepciones de Android NDK
He leído https://developer.android.com/ndk/guides/cpp-support.html y parte de la documentación suministrada con el NDK, pero no puedo encontrar una respuesta definitiva. ¡Gracias por tu ayuda!
- ¿Por qué los subprocesos nativos se comportan de forma diferente cuando la aplicación está en segundo plano?
- No se pueden incluir encabezados de C ++ como vector en Android NDK
- Vinculación de la compilación de la biblioteca con ndk r10 en la compilación del proyecto con ndk r13 utilizando c ++ _ stl compartido
- Android NDK STL c ++ _ compartido con resultados LIBCXX_FORCE_REBUILD en std :: stringstream NOP
- Std :: map linker error ndk r8c con APP_STL: = gnustl_static
- C ++ 11 funciones cmath no en el espacio de nombres std para android NDK w / gcc-4.8 o clang 3.4
- Excepciones de Android NDK y C ++: estado actual?
- Distribuir la biblioteca NDK con gnustl?
Lo mejor es evitar esto si es posible.
Si un tipo STL (como un std::string
, por ejemplo) es accedido por un binario stlport_shared
y un binario c++_static
, ya que las dos implementaciones de std::string
no son compatibles, esto no funcionará.
También es vulnerable a los problemas descritos en https://stackoverflow.com/a/25856207/632035
- Empuje usando Parse en Qt5.5 para Android: NullPointerException en getCurrentInstallation
- extendiendo la clase cardview muestran el rectángulo blanco alrededor de la tarjeta