我正在尝试使用Android NDK中的AMotionEvent_getActionButton
函数
但我得到以下错误
C/C++: /usr/home/ndk-project/main.c:188:26: error: 'AMotionEvent_getActionButton' is unavailable: introduced in Android 33
C/C++: /usr/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/android/input.h:1370:9: note: 'AMotionEvent_getActionButton' has been explicitly marked unavailable here
上面说这个功能是安卓33推出的我用的是安卓33
相关代码行
int32_t buttonPress = AMotionEvent_getActionButton(event);
模块级构建.gradle
plugins {
id 'com.android.application'
}
android {
compileSdk 33
ndkVersion '25.1.8937393'
defaultConfig {
applicationId = 'com.example.app'
minSdkVersion 14
targetSdkVersion 33
externalNativeBuild {
cmake {
arguments '-DANDROID_STL=c++_static'
}
}
ndk {
abiFilters 'x86_64'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
lintOptions {
abortOnError false
}
externalNativeBuild {
cmake {
path 'src/main/cpp/CMakeLists.txt'
}
}
namespace 'com.example.app'
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
}
为什么会出现此错误?
我该怎么补救?
1条答案
按热度按时间ffscu2ro1#
来自文档:
此属性对NDK生成没有影响。NDK的API可用性由
minSdkVersion
控制。这是因为C++符号在库加载时会立即解析,而不是在首次调用时延迟解析使用minSdkVersion
中不可用的任何符号将导致库无法加载到没有更新API的OS版本上,而不管这些API是否将被调用。