libMesh.so
在
libMesh.so
和android/src/main/libs/arm64-v8a/
中
我的包装器代码在android/src/main/libs/x86_64/
src/line.cpp
在CMakeLists.txt
Cmakelists.txtandroid/app/
cmake_minimum_required(VERSION 3.4.1)
include_directories(C:/Development/applications/Lib)
linking
add_library(
LineWrapper
target_link_libraries
SHARED
../../src/line.cpp
)
target_link_libraries(
LineWrapper
${CMAKE_CURRENT_SOURCE_DIR}/../src/main/libs/${ANDROID_ABI}/libMesh.so
)
final DynamicLibrary meshLibrary = Platform.isAndroid
? DynamicLibrary.open("libMesh.so")
: DynamicLibrary.process();
final DynamicLibrary lineWrapperLibrary = Platform.isAndroid
? DynamicLibrary.open("libLineWrapper.so")
: DynamicLibrary.process();
build.gradle
eRror 当我运行Flutter Build时,我会收到此错误:
android {
// ...
defaultConfig {
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
ndk {
abiFilters 'x86_64', 'arm64-v8a'
}
}
// ...
}
我已经确认库文件存在于该路径上。我尝试过:
使用find_library()而不是直接路径将ABIS限制在build。
我想念什么?我如何将新库与现有的.SO文件正确链接?
Hello我通过删除Libs文件夹并添加我的$ {android_abi}/sharedfile.so来解决此错误。 Cmakelists.txt
Could not find libMesh.so for arm64-v8a at:
C:/Development/applications/flutter_project/android/app/../src/main/libs/arm64-v8a/libMesh.so