Android NDK Math функции не работают

Я использую Android Studio и NDK в своем приложении, и у меня возникают проблемы с некоторыми математическими функциями, такими как sinf, cosf и sqrtf. Когда я использую эти функции, они, кажется, просто возвращают 0.

я имею #include<math.h> в верхней части моего файла, и я попытался связать математическую библиотеку в build.gradle, но это ничего не изменило.

Мой файл build.gradle выглядит так:

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.android.gl2jni"minSdkVersion 5
targetSdkVersion 5

ndk {
moduleName "libgl2jni"ldLibs "GLESv2","log","m"stl "gnustl_shared"cFlags "-fexceptions -std=gnu++11 -frtti -lm"}
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}

РЕДАКТИРОВАТЬ:
Одна проблемная область кода:

rotation = sinf(phase * 25.0f) * 0.4f;
phase += deltaTime;

Я ожидаю, что вращение будет идти вперед и назад по синусоиде, между -1 и 1, но оно остается постоянным. Это не проблема с дельта-временем, если я изменю его на rotation = deltaTime; это постоянно идет вверх.

РЕДАКТИРОВАТЬ 2:

Любой код, который использует функции math.h.

Основной пример может быть:

#include <math.h>
#include <android/log.h>

void SomeFunction(){
//Should be 0
__android_log_print(ANDROID_LOG_VERBOSE, "Math Test", "%f", sinf(0.0f));
//Should be 1
__android_log_print(ANDROID_LOG_VERBOSE, "Math Test", "%f", sinf(3.14f * 0.5f));
}

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]