主要问题:
Android aar构建过程是否有办法包含libssl.so.1.1
?
背景
我用openssl 1.1.0建立一个.aar。 共享对象openssl输出是' libssl.so.1.1'和' libssl.so' (加上libcrypto,但我现在将其排除在外)
使用共享对象创建.aar时,android库构建成功完成,但缺少以' .so.1.1'结尾的共享对象。但是,它包括明确以' .so'
结尾的其他共享对象我假设android aar gradle任务正在对以' .so'结尾的文件进行严格检查。
查看android构建目录,我看到' intermediates - > jniLibs - >释放'包含所有.so,包括* .so.1.1。 但是,寻找中间体 - > library_and_local_jars_jni - >释放'它缺少.so.1.1文件。
更多信息:
感谢您的帮助。
答案 0 :(得分:1)
我能够在openssl GitHub问题跟踪器中找到确切的问题 https://github.com/openssl/openssl/issues/3902
使用OpenSSL 1.1.0修改Configurations/10-main.conf
以及
在"android64" => {
和"android" => {
两个部分中,您必须像shared_extension => ".so",
一样添加inherit_from
(确保它在"android64" => {
inherit_from => [ "linux-generic64" ],
shared_extension => ".so",
cflags => add(picker(default => "-mandroid -fPIC --sysroot=\$(CROSS_SYSROOT) -Wa,--noexecstack")),
bin_cflags => "-pie",
},
下面),
make SHLIB_VERSION_NUMBER= SHLIB_EXT=.so
较新的OpenSSL版本(例如1.1.1)看起来使用以下
{{1}}