<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Including OpenSSL .so libraries for Android? (resolved) in ArcGIS Maps SDK for Unreal Engine Questions</title>
    <link>https://community.esri.com/t5/arcgis-maps-sdk-for-unreal-engine-questions/including-openssl-so-libraries-for-android/m-p/1210618#M47</link>
    <description>&lt;P&gt;All,&lt;/P&gt;&lt;P&gt;I'd love to know how you included the two OpenSSL libraries in your Unreal project for Android. I've done a ton of Googling; research suggests the right way to do this is to create a plugin.&lt;/P&gt;&lt;P&gt;Using the ArcGIS SDK plugin as a model along with the little that exists in the way of &lt;A href="https://developers.arcgis.com/unreal-engine/deployment/#mobile" target="_blank" rel="noopener"&gt;docs&lt;/A&gt;, I've cobbled together a plugin that will copy the libcrypto_1_1.so and libssl_1_1.so files to the libs/arm64-v8a directory in the .apk.&lt;/P&gt;&lt;P&gt;However, I get one of two problems at runtime:&lt;/P&gt;&lt;P&gt;* If I follow the Esri doc and create a very simple AndroidOpenSSL.Build.cs file that merely calls the&amp;nbsp;&lt;SPAN&gt;AdditionalPropertiesForReceipt.Add function, I get a runtime dialog box saying Unreal couldn't find the module "AndroidOpenSSL".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;* If I add lines calling "PublicAdditionalLibraries.Add" for each of the two OpenSSL libraries, the app crashes on startup, and LogCat tells me "&lt;FONT size="2"&gt;&lt;STRONG&gt;dlopen failed: library "libcrypto.so.1.1" not found: needed by /data/app/~~4rD_korI4tweVUi6c70fBA==/com.esri.apl.myproj3-lsFLIEb_hOa95NYNOXaEzg==/lib/arm64/libUnreal.so in namespace classloader-namespace&lt;/STRONG&gt;&lt;/FONT&gt;".&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Most of the unreal forum discussions on this date back to 2015-2016 and most don't have any responses to the question. Any help you can give here would be greatly appreciated.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;[Edit] I should add that the libcrypto and libssl libraries in question were compiled from source and target an arm64 architecture. They function just fine in a Unity app.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[Update]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;While it would be most elegant to create a plugin for the Android OpenSSL libraries, in the interest of time I tried modifying the ArcGISMapsSDK plugin. &lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;I added the two .so files to &amp;lt;project&amp;gt;\Plugins\ArcGISMapsSDK\Binaries\ThirdParty\ArcGISMapsSDK\Android\arm64&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Modified&amp;nbsp;&amp;lt;project&amp;gt;\Plugins\ArcGISMapsSDK\Source\ArcGISMapsSDK\ArcGISMapsSDK_APL.xml to include these lines:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;log text="Copying libcrypto_1_1.so"/&amp;gt;
&amp;lt;copyFile
	src="$S(PluginDir)/../../Binaries/ThirdParty/ArcGISMapsSDK/Android/arm64/libcrypto_1_1.so"
	dst="$S(BuildDir)/libs/arm64-v8a/libcrypto_1_1.so"
/&amp;gt;
&amp;lt;log text="Copying libssl_1_1.so"/&amp;gt;
&amp;lt;copyFile
	src="$S(PluginDir)/../../Binaries/ThirdParty/ArcGISMapsSDK/Android/arm64/libssl_1_1.so"
	dst="$S(BuildDir)/libs/arm64-v8a/libssl_1_1.so"
/&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This seems to do the trick. I'll just keep a copy of this augmented ArcGISMapsSDK Plugin for use in future projects.&lt;/P&gt;</description>
    <pubDate>Thu, 08 Sep 2022 18:00:53 GMT</pubDate>
    <dc:creator>m_d</dc:creator>
    <dc:date>2022-09-08T18:00:53Z</dc:date>
    <item>
      <title>Including OpenSSL .so libraries for Android? (resolved)</title>
      <link>https://community.esri.com/t5/arcgis-maps-sdk-for-unreal-engine-questions/including-openssl-so-libraries-for-android/m-p/1210618#M47</link>
      <description>&lt;P&gt;All,&lt;/P&gt;&lt;P&gt;I'd love to know how you included the two OpenSSL libraries in your Unreal project for Android. I've done a ton of Googling; research suggests the right way to do this is to create a plugin.&lt;/P&gt;&lt;P&gt;Using the ArcGIS SDK plugin as a model along with the little that exists in the way of &lt;A href="https://developers.arcgis.com/unreal-engine/deployment/#mobile" target="_blank" rel="noopener"&gt;docs&lt;/A&gt;, I've cobbled together a plugin that will copy the libcrypto_1_1.so and libssl_1_1.so files to the libs/arm64-v8a directory in the .apk.&lt;/P&gt;&lt;P&gt;However, I get one of two problems at runtime:&lt;/P&gt;&lt;P&gt;* If I follow the Esri doc and create a very simple AndroidOpenSSL.Build.cs file that merely calls the&amp;nbsp;&lt;SPAN&gt;AdditionalPropertiesForReceipt.Add function, I get a runtime dialog box saying Unreal couldn't find the module "AndroidOpenSSL".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;* If I add lines calling "PublicAdditionalLibraries.Add" for each of the two OpenSSL libraries, the app crashes on startup, and LogCat tells me "&lt;FONT size="2"&gt;&lt;STRONG&gt;dlopen failed: library "libcrypto.so.1.1" not found: needed by /data/app/~~4rD_korI4tweVUi6c70fBA==/com.esri.apl.myproj3-lsFLIEb_hOa95NYNOXaEzg==/lib/arm64/libUnreal.so in namespace classloader-namespace&lt;/STRONG&gt;&lt;/FONT&gt;".&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Most of the unreal forum discussions on this date back to 2015-2016 and most don't have any responses to the question. Any help you can give here would be greatly appreciated.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;[Edit] I should add that the libcrypto and libssl libraries in question were compiled from source and target an arm64 architecture. They function just fine in a Unity app.&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;[Update]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;While it would be most elegant to create a plugin for the Android OpenSSL libraries, in the interest of time I tried modifying the ArcGISMapsSDK plugin. &lt;/SPAN&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;SPAN&gt;I added the two .so files to &amp;lt;project&amp;gt;\Plugins\ArcGISMapsSDK\Binaries\ThirdParty\ArcGISMapsSDK\Android\arm64&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;SPAN&gt;Modified&amp;nbsp;&amp;lt;project&amp;gt;\Plugins\ArcGISMapsSDK\Source\ArcGISMapsSDK\ArcGISMapsSDK_APL.xml to include these lines:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;log text="Copying libcrypto_1_1.so"/&amp;gt;
&amp;lt;copyFile
	src="$S(PluginDir)/../../Binaries/ThirdParty/ArcGISMapsSDK/Android/arm64/libcrypto_1_1.so"
	dst="$S(BuildDir)/libs/arm64-v8a/libcrypto_1_1.so"
/&amp;gt;
&amp;lt;log text="Copying libssl_1_1.so"/&amp;gt;
&amp;lt;copyFile
	src="$S(PluginDir)/../../Binaries/ThirdParty/ArcGISMapsSDK/Android/arm64/libssl_1_1.so"
	dst="$S(BuildDir)/libs/arm64-v8a/libssl_1_1.so"
/&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This seems to do the trick. I'll just keep a copy of this augmented ArcGISMapsSDK Plugin for use in future projects.&lt;/P&gt;</description>
      <pubDate>Thu, 08 Sep 2022 18:00:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-maps-sdk-for-unreal-engine-questions/including-openssl-so-libraries-for-android/m-p/1210618#M47</guid>
      <dc:creator>m_d</dc:creator>
      <dc:date>2022-09-08T18:00:53Z</dc:date>
    </item>
  </channel>
</rss>

