我正在尝试重建一个旧的应用程序(最初是armeabi)来支持arm64。当前NDK为android-ndk-r10e-windows-x86_64。我必须使用这个NDK版本。其他NDK版本将破坏当前代码。
我将应用程序级别build.gradle从
abiFilters "armeabi"
至
abiFilters "armeabi",'arm64-v8a'
但是,当我第一次尝试构建时,我得到错误:包含致命错误: sys/timeb.h:没有这样的文件或目录# C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:8:38: // for ftime()
似乎在android-ndk-r10e中,文件timeb.h被删除了。我不知道如何修复它,所以我手动将"platforms\android-14\arch-x86\usr\include\sys\timeb.h“复制到"platforms\android-21\arch-arm64\usr\include\sys\timeb.h”,然后重试,我得到了以下错误:
C:/Users/user/Documents/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o: In function tu_timer::init_timer()': C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:15: undefined reference to
ftime‘C:/Users/user/Documents/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o: In function tu_timer::get_ticks()': C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:21: undefined reference to
ftime’tu_timer::init_timer()': C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:15: undefined reference to
2.exe: error: ld returned 1 exit status
应用级build.gradle
defaultConfig {
//applicationId "applicationId"
minSdkVersion 14
targetSdkVersion 26
// Enabling multidex support.
multiDexEnabled true
ndk {
moduleName "native-lib"
//abiFilters "armeabi"
abiFilters "armeabi",'arm64-v8a'
}
}
Application.mk
APP_PLATFORM := android-9
APP_STL := gnustl_static
APP_ABI := all
#APP_OPTIM := debug
APP_OPTIM := release
ifeq ($(APP_OPTIM),debug)
APP_CPPFLAGS := -O0 -g $(APP_CPPFLAGS)
else
APP_CPPFLAGS := -O2 -DNDEBUG -g $(APP_CPPFLAGS)
endif
我不知道下一步该怎么办。请帮帮我!
https://stackoverflow.com/questions/56749914
复制相似问题