Antergos Linux上的“OPENSSL_1.0.0 not found”
我正在Antergos Linux环境中开发android studio上的应用程序。一切正常,同步,建立和调试。一天前,一些更新,它不再建立。源代码完全相同,我已经尝试将我的代码重置为以前也可以使用的较早的提交,所以我知道问题不在我的代码中。 Gradle同步消息是:Antergos Linux上的“OPENSSL_1.0.0 not found”
Build command failed.
Error while executing process /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake with arguments {-H/home/andre/Development/Edru/edru-android/app
-B/home/andre/Development/Edru/edru-android/app/.externalNativeBuild/cmake/debug/armeabi
-GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=/home/andre/Android/Sdk/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/andre/Development/Edru/edru-android/app/build/intermediates/cmake/debug/obj/armeabi
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/home/andre/Android/Sdk/cmake/3.6.3155560/bin/ninja
-DCMAKE_TOOLCHAIN_FILE=/home/andre/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake
-DANDROID_PLATFORM=android-19 -DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions}
/home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake)
Build command failed.
Error while executing process /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake with arguments {-H/home/andre/Development/Edru/edru-android/app
-B/home/andre/Development/Edru/edru-android/app/.externalNativeBuild/cmake/release/armeabi
-GAndroid Gradle - Ninja -DANDROID_ABI=armeabi -DANDROID_NDK=/home/andre/Android/Sdk/ndk-bundle -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/andre/Development/Edru/edru-android/app/build/intermediates/cmake/release/obj/armeabi
-DCMAKE_BUILD_TYPE=Release -DCMAKE_MAKE_PROGRAM=/home/andre/Android/Sdk/cmake/3.6.3155560/bin/ninja
-DCMAKE_TOOLCHAIN_FILE=/home/andre/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake
-DANDROID_PLATFORM=android-19 -DCMAKE_CXX_FLAGS=-std=c++11 -frtti -fexceptions}
/home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.0' not found (required by /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake)
/home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake: /usr/lib/libssl.so.1.0.0: version `OPENSSL_1.0.1' not found (required by /home/andre/Android/Sdk/cmake/3.6.3155560/bin/cmake)
我已经检查过,并且我有openssl 1.0和openssl 1.1。我已经用全新的android-studio重新安装了我的操作系统,问题仍然存在。
感谢您的关注。
问题出在Android和0123ss之间,openssl-1.0.2.k-3。如果你在Arch Linux上是最新的,我相信你现在安装了extra/openssl-1.0 1.0.2.k-3
和core/openssl 1.1.0.e-1
。至少这是我的情况。
在这种情况下,刚刚降级openssl-1.0 1.0.2.k-3
到openssl-1.0 1.0.2.k-2
如下:
注意:它为我工作,但我不是一个拱门专家和降级一个包可以让你的系统上的后果。自行承担风险。
- 下载包here“的OpenSSL 1.0-1.0.2.k -2- x86_64.pkg.tar.xz”
- 降级到你刚刚下载了
$ pacman -U openssl-1.0-1.0.2.k-2-x86_64.pkg.tar.xz
- 作为包验证,如果你运行
pacman -Ss openssl-1.0
,它应该告诉你:extra/openssl-1.0 1.0.2.k-3 [installed: 1.0.2.k-2]
当然再pacman -Syu
将要再次更新openssl-1.0
。
UPDATE:截至今天(30-05-2017),它似乎是固定的。
压力保护程序!谢谢! –
为了避免降级,您还可以像上面提到的那样下载openssl-1.0-1.0.2.k-2-x86_64.pkg.tar.xz,解压缩压缩文件并将lib/files复制到/ usr/local/lib例如 rsync -avz /tmp/openssl-1.0-1.0.2.k-2-x86_64.pkg.tar/usr/lib//usr/local/lib
然后编辑Android Studio启动脚本eg /opt/android-studio/bin/studio.sh并更改: LD_LIBRARY_PATH =“$ IDE_BIN_HOME:$ LD_LIBRARY_PATH”“$ JAVA_BIN” 至 LD_LIBRARY_PATH =“/ usr/local/lib:$ IDE_BIN_HOME:$ LD_LIBRARY_PATH”“$ JAVA_BIN“
我相信Android现在使用BoringSSL,而不是OpenSSL。随意更改标签。这条路径看起来不正确:'/ usr/lib/libcrypto.so.1.0.0'。这通常是主机(您的PC)的'libcrypto'(和'libssl');不是目标机器(Android设备)。 – jww
昨天更新了系统后,Arch上出现同样的问题。只要运行'$/opt/android-sdk/cmake/3.6.3155560/bin/cmake',我就会收到错误消息。 – JonesV
我感觉像'/ opt/android-sdk/cmake/3.6.3155560/bin/cmake'中的'cmake'二进制文件现在应该重新编译,因为我有一个新版本的libssl。但它似乎是由gradle安装的,所以我不知道我是否可以自己构建它... – JonesV