【发布时间】:2019-11-07 01:09:29
【问题描述】:
我正在尝试重建一个旧应用程序(最初是 armeabi)以支持 arm64。当前的 NDK 是 android-ndk-r10e-windows-x86_64。我必须使用这个 NDK 版本。其他 NDK 版本会破坏当前代码。
我将应用级别的 build.gradle 更改为
abiFilters "armeabi"
到
abiFilters "armeabi",'arm64-v8a'
但是,当我第一次尝试构建时,我得到了错误: C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:8:38:致命错误:sys/timeb.h:没有这样的文件或目录 #include // 用于 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:在函数@987654323 @ftime'
C:/Users/user/Documents/android_studio/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/native-lib/gameswf/base/tu_timer.o:在函数tu_timer::get_ticks()':
C:/Users/user/Documents/android_studio/app/src/main/jni/gameswf/base/tu_timer.cpp:21: undefined reference toftime'
collect2.exe:错误:ld 返回 1 个退出状态
应用级 build.gradle
defaultConfig {
//applicationId "applicationId"
minSdkVersion 14
targetSdkVersion 26
// Enabling multidex support.
multiDexEnabled true
ndk {
moduleName "native-lib"
//abiFilters "armeabi"
abiFilters "armeabi",'arm64-v8a'
}
}
应用程序.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
我不知道下一步该做什么。请帮忙!
【问题讨论】:
标签: android-ndk arm64