我正在尝试重建旧的应用程序(最初是armeabi)以支持arm64。当前的NDK是android-ndk-r10e-windows-x86_64。我必须使用此NDK版本。其他NDK版本将破坏当前代码。
我从更改了应用程序级别build.gradle
abiFilters "armeabi"
到
abiFilters "armeabi",'arm64-v8a'
但是,当我第一次尝试构建时,出现错误: C:/用户/用户/文档/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:8:38:致命错误:sys / timeb.h:无此类文件或目录 #include // 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:/用户/用户/文档/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o:在函数{{ 1}} ftime'
C:/用户/用户/文档/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o:在函数tu_timer::init_timer()':
C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:15: undefined reference to
中ftime'
collect2.exe:错误:ld返回1退出状态
应用程序级别build.gradle
tu_timer::get_ticks()':
C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:21: undefined reference to
Application.mk
defaultConfig {
//applicationId "applicationId"
minSdkVersion 14
targetSdkVersion 26
// Enabling multidex support.
multiDexEnabled true
ndk {
moduleName "native-lib"
//abiFilters "armeabi"
abiFilters "armeabi",'arm64-v8a'
}
}
我不知道下一步该怎么做。请帮忙!
答案 0 :(得分:0)
Android不支持ftime
。请改用gettimeofday
。参见man page。
4.2BSD,POSIX.1-2001。 POSIX.1-2008删除了 ftime()。
该功能已过时。不要使用它。如果时间以秒为单位 足够,可以使用time(2); gettimeofday(2)给出微秒; clock_gettime(2)可以提供纳秒级的数据,但使用范围不广。