У меня ошибка NDK . то есть
Фатальный сигнал 11 (SIGSEGV), код 1, адрес ошибки 0xef38 в тид 17996 (пул-10-нить -)
Что я делаю, это ниже:
Первый шаг:
в просмотр активности : я вызываю функцию из докладчика и отправляю широту и долготу, чтобы найти адрес с помощью обратного геокодирования
в класс докладчика : ниже находится функция
private fun getAddressObservable(latitude: Double, longitude: Double): Observable<List<Address>> {
val geoCodeObservable: Observable<List<Address>> = locationProvider.getReverseGeocodeObservable(latitude, longitude, 1)
return geoCodeObservable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
private fun getAddressObserver(): DisposableObserver<List<Address>> {
return object : DisposableObserver<List<Address>>() {
override fun onComplete() {
Log.d(TAG, "Completed")
}
override fun onNext(t: List<Address>) {
val address = t[0].getAddressLine(0)
if (isSource) {
mainView.sourceAddress(address, latLng)
} else {
mainView.destinationAddress(address, latLng)
}
}
override fun onError(e: Throwable) {
Log.d(TAG, e.message)
if (isSource) {
mainView.sourceAddress(App.context.resources.getString(R.string.na), latLng)
} else {
mainView.destinationAddress(App.context.resources.getString(R.string.na), latLng)
}
}
}
}
Теперь второй шаг:
Когда я получил ответ от вышеуказанного API в sourceAddress and destionationAddress
функциях просмотра .. Затем я вызываю другой RESTAPI
override fun sourceAddress(address: String?,latLng: LatLng) {
sourceAddress= address.toString()
tvAddSource.text=address
tvAddSource.setTextColor(Utils.getColor(R.color.colorPrimary))
sourceLatLng=latLng
**mainActivityPresentator.getNearbyDriver(latLng.latitude,latLng.longitude,sourceAddress.toString())**
}
Теперь ведущий звонит:
override fun getNearbyDriver(latitude: Double, longitude: Double, address: String) {
getObservable(latitude,longitude,address).subscribeWith(getObserver())
}
private fun getObservable(latitude: Double, longitude: Double, address: String): Observable<NearbyDriversResponse> {
return ApiClient.getClient().create(ApiInterface::class.java).getNearbyDriversRequest(preferenceAdapter.getUserModel()?.id, preferenceAdapter.getUserToken(), latitude, longitude, address)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}
private fun getObserver(): DisposableObserver<NearbyDriversResponse> {
return object : DisposableObserver<NearbyDriversResponse>() {
override fun onComplete() {
Log.d(TAG, "Completed")
}
override fun onNext(@NonNull response: NearbyDriversResponse) {
response.status?.let {
when {
Objects.equals(it, ResponseMessages.RESPONSE_STATUS_SUCCESS) -> {
mainView.responseNearByDriver(response)
}
Objects.equals(it, ResponseMessages.RESPONSE_STATUS_FAILURE) -> {
response.message?.let {
mainView.failureMessage(it)
}
}
Objects.equals(it, ResponseMessages.RESPONSE_STATUS_ERROR) -> {
mainView.errorMessage(App.context.getString(R.string.invalid_token))
}
else -> {
mainView.errorMessage(App.context.getString(R.string.default_error_message))
}
}
}
}
override fun onError(@NonNull e: Throwable) {
e.message?.let {
Log.d(TAG,it)
}
mainView.apiFailure(App.context.getString(R.string.internet_connection_failure))
}
}
}
Если я перестану звонить getNearByDrivers
mainActivityPresentator.getNearbyDriver(latLng.latitude,latLng.longitude,sourceAddress.toString())
тогда приложение работает нормально
если я начну вызывать эту строку .. то через несколько минут .. приложение выдает ниже ошибки
Фатальный сигнал 11 (SIGSEGV), код 1, адрес ошибки 0xef38 в тид 17996 (пул-10-нить -)
Я сыт по горло. пытаюсь решить от 3 дней. все еще не решил
ПРИМЕЧАНИЕ: getAddress
API вызывается в mMap.setOnCameraIdleListener()
Проблема решена в API> = нуга по android:hardwareAccelerated="false"
. Не работает для устройств леденец