Executing tasks: [clean, :smartcropperlib:assembleDebug, :app:assembleDebug]
:clean UP-TO-DATE
:app:clean
:smartcropperlib:externalNativeBuildCleanDebug
Clean smart_cropper armeabi-v7a
Cleaning... 3 files.
Clean smart_cropper arm64-v8a
Cleaning... 4 files.
Clean smart_cropper x86
Cleaning... 4 files.
Clean smart_cropper x86_64
Cleaning... 4 files.
:smartcropperlib:externalNativeBuildCleanRelease
Clean smart_cropper armeabi-v7a
Cleaning... 0 files.
Clean smart_cropper arm64-v8a
Cleaning... 0 files.
Clean smart_cropper x86
Cleaning... 0 files.
Clean smart_cropper x86_64
Cleaning... 0 files.
:smartcropperlib:clean
:smartcropperlib:preBuild UP-TO-DATE
:smartcropperlib:preDebugBuild UP-TO-DATE
:smartcropperlib:compileDebugAidl NO-SOURCE
:smartcropperlib:compileDebugRenderscript
:smartcropperlib:checkDebugManifest
:smartcropperlib:generateDebugBuildConfig
:smartcropperlib:generateDebugResValues
:smartcropperlib:generateDebugResources
:smartcropperlib:packageDebugResources
:smartcropperlib:processDebugManifest
:smartcropperlib:generateDebugRFile
:smartcropperlib:prepareLintJar UP-TO-DATE
:smartcropperlib:generateDebugSources
:smartcropperlib:javaPreCompileDebug
注: D:\opj\docScan\SmartCropper\smartcropperlib\src\main\java\me\pqpo\smartcropperlib\view\CropImageView.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
:smartcropperlib:compileDebugJavaWithJavac
:smartcropperlib:extractDebugAnnotations
:smartcropperlib:mergeDebugConsumerProguardFiles UP-TO-DATE
:smartcropperlib:mergeDebugShaders
:smartcropperlib:compileDebugShaders
:smartcropperlib:generateDebugAssets
:smartcropperlib:packageDebugAssets
:smartcropperlib:packageDebugRenderscript NO-SOURCE
:smartcropperlib:processDebugJavaRes NO-SOURCE
:smartcropperlib:transformResourcesWithMergeJavaResForDebug
:smartcropperlib:transformClassesAndResourcesWithSyncLibJarsForDebug
:smartcropperlib:generateJsonModelDebug UP-TO-DATE
:smartcropperlib:externalNativeBuildDebug
Build smart_cropper x86_64
[1/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o
[2/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o
[3/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o
[4/4] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86_64\libsmart_cropper.so
Build smart_cropper x86
[1/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o
[2/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o
[3/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o
[4/4] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libsmart_cropper.so
Build smart_cropper arm64-v8a
[1/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o
[2/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o
[3/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o
[4/4] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\arm64-v8a\libsmart_cropper.so
Build smart_cropper armeabi-v7a
[1/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o
[2/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o
[3/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o
[4/4] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\armeabi-v7a\libsmart_cropper.so
FAILED: ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libsmart_cropper.so
cmd.exe /C "cd . && C:\Users\ASUS\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi19 --gcc-toolchain=C:/Users/ASUS/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/Users/ASUS/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -Wl,-soname,libsmart_cropper.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\armeabi-v7a\libsmart_cropper.so CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o -LD:/opj/docScan/SmartCropper/smartcropperlib/opencv/lib/armeabi-v7a -LD:/opj/docScan/SmartCropper/smartcropperlib/opencv/3rdparty/armeabi-v7a -lopencv_imgproc -lopencv_core C:/Users/ASUS/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/arm-linux-androideabi/libz.a -ltegra_hal -ltbb -lcpufeatures -llog -ljnigraphics -latomic -lm && cd ."
/build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:431: error: undefined reference to 'fegetenv'
/build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:435: error: undefined reference to 'fesetenv'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
:smartcropperlib:externalNativeBuildDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':smartcropperlib:externalNativeBuildDebug'.
> Build command failed.
Error while executing process C:\Users\ASUS\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\cmake.exe with arguments {--build D:\opj\docScan\SmartCropper\smartcropperlib\.externalNativeBuild\cmake\debug\armeabi-v7a --target smart_cropper}
[1/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o
[2/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o
[3/4] Building CXX object CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o
[4/4] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\armeabi-v7a\libsmart_cropper.so
FAILED: ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libsmart_cropper.so
cmd.exe /C "cd . && C:\Users\ASUS\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi19 --gcc-toolchain=C:/Users/ASUS/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/Users/ASUS/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -march=armv7-a -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -static-libstdc++ -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--exclude-libs,libunwind.a -Wl,--no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -Wl,-soname,libsmart_cropper.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\armeabi-v7a\libsmart_cropper.so CMakeFiles/smart_cropper.dir/src/main/cpp/Scanner.cpp.o CMakeFiles/smart_cropper.dir/src/main/cpp/android_utils.cpp.o CMakeFiles/smart_cropper.dir/src/main/cpp/smart_cropper.cpp.o -LD:/opj/docScan/SmartCropper/smartcropperlib/opencv/lib/armeabi-v7a -LD:/opj/docScan/SmartCropper/smartcropperlib/opencv/3rdparty/armeabi-v7a -lopencv_imgproc -lopencv_core C:/Users/ASUS/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/arm-linux-androideabi/libz.a -ltegra_hal -ltbb -lcpufeatures -llog -ljnigraphics -latomic -lm && cd ."
/build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:431: error: undefined reference to 'fegetenv'
/build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:435: error: undefined reference to 'fesetenv'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
解决方法
在主项目的build.gradle里面添加
ext {
compileSdkVersion = 28
minSdkVersion = 21
targetSdkVersion = 28
supportLibraryVersion = '28.0.0'
}
在libary的build.gradle里面改为
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 10
versionName "2.1.4"
externalNativeBuild {
cmake {
cppFlags "-std=c++11 -frtti"
abiFilters 'armeabi-v7a', "arm64-v8a", 'x86', 'x86_64'
arguments "-DANDROID_TOOLCHAIN=clang", "-DANDROID_STL=c++_static"
// arguments "-DANDROID_STL=c++_shared"
}
}
}
意思就是把libary的sdk版本改为和主module的sdk版本一致
minSdkVersion 和targetSdkVersion