Что-то случилось с моим Android Studio
или моим gradle-wrapper
или что-то, когда я нажал на обновление, и проект больше не строится.Сбой компоновщика при связывании специальной библиотеки .so
Это мой журнал ошибок:
Error:Execution failed for task ':app:myLibArm64-v8aDebugSharedLibrary'.
A build operation failed.
Linker failed while linking myLib.so.
See the complete log at: file:///mypath/app/build/tmp/myLibArm64-v8aDebugSharedLibrary/output.txt
output.txt говорит:
android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-
x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-
linux-android/bin/ld: cannot find -lopencv_java3
collect2: error: ld returned 1 exit status
Кроме того, здесь мой Gradle код:
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.3"
defaultConfig.with {
applicationId "my.app"
minSdkVersion.apiLevel = 16
targetSdkVersion.apiLevel = 23
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
}
ndk {
moduleName = "MyApp"
cppFlags.add("-I${file(getOpenCVDir())}/sdk/native/jni/include".toString())
cppFlags.add("-frtti")
cppFlags.add("-fexceptions")
cppFlags.add("-std=c++11")
ldLibs.addAll(["log", "opencv_java3"])
stl = "gnustl_static"
}
abis {
create("arm64-v8a") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/arm64-v8a".toString())
}
create("armeabi") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/armeabi".toString())
}
create("armeabi-v7a") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/armeabi-v7a".toString())
}
create("mips") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/mips".toString())
}
create("mips64") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/mips64".toString())
}
create("x86") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/x86".toString())
}
create("x86_64") {
ldFlags.add("-L${file(getOpenCVDir())}/sdk/native/libs/x86_64".toString())
}
}
}
}
Я на classpath 'com.android.tools.build:gradle-experimental:0.8.3'
и Я использую distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
libopencv_java3.so находится в каждой папке, указанной в
Вещи я уже пробовал:
- полностью деинсталлировать и переустановить Android Studio
- Файл -> Invalidate кэши и Restart
- ./gradlew чистый и строительство -> Clean Project
- изменить версию ndk (я использовал r12 и r13)
- изменить версию градиента назад до 2.10 и экспериментально до 0.7.0 как это было до
- Revert проект предыдущей фиксации
- тянуть и создать источник в другой проект
Еще одна вещь, чтобы отметить, точно такой же код работает на компьютере моего колледжа с той же Gradle и Android студии версии (2.2. 3)