【发布时间】:2017-05-07 03:53:39
【问题描述】:
我的Android Studio 或我的gradle-wrapper 发生了一些事情,或者当我单击更新并且项目不再构建时。
这是我的错误日志:
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 位于abis {} 中指定的每个文件夹中
我已经尝试过的事情:
- 完全卸载并重新安装 Android Studio
- 文件 -> 使缓存无效并重新启动
- ./gradlew clean and Build -> 清理项目
- 更改 ndk 版本(我用过 r12 和 r13)
- 将 gradle 版本改回 2.10 并将实验性版本更改为 0.7.0 之前的样子
- 将项目恢复到以前的提交
- 将源代码拉取并创建到不同的项目中
另外需要注意的是,相同的代码可以在我大学的计算机上使用相同的 Gradle 和 Android Studio 版本 (2.2.3)
【问题讨论】:
标签: android android-studio gradle android-ndk build.gradle