【问题标题】:Adding Asset Packs to Android Bundle in Xamarin?在 Xamarin 中将资产包添加到 Android Bundle?
【发布时间】:2021-01-01 07:40:38
【问题描述】:

现在 Xamarin 支持以 .aab 格式创建 App Bundle,有没有办法使用 Visual Studio 将可下载的 Asset Pack 添加到包中?

【问题讨论】:

  • Xamarin 已经绑定了 Play Core 库:github.com/xamarin/XamarinComponents/tree/master/Android/…
  • 是的,但是您如何实际创建资产包并将它们添加到 Visual Studio 中的捆绑包中?
  • Visual Studio 没有任何内置的基于 UI 的功能来创建资产包,但就像创建 .obb 文件一样,您可以通过 Android 构建工具或通过 Android Studio 来完成。
  • 如果您在 Xamarin 中创建了 .aab,您将如何做到这一点?您可以使用这些工具添加到现有的 .aab 吗?
  • 简而言之,是的,.abb 只是签名的 zip 文件(其文件结构已被 Google 详细记录)。在 Xamarin 支持直接构建 .abb 之前,您可以通过 .apk 构建工件创建一个(我为客户端创建一个脚本文件来执行此操作)。这实际上取决于您的需求,资产包确实面向游戏开发(就像.obb 一样)。 Unity、Unreal 和 Android Studio 是我目前知道的唯一通过 UI 功能集直接支持它们的 UI,Xamarin 会支持它们吗(?),谁知道......,它们不支持 .obb,因为非常小的用户群重叠。

标签: android visual-studio xamarin android-app-bundle


【解决方案1】:

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
【解决方案2】:

以下是在 Windows 11 上创建安装时资产包的指南手动使用适用于 Linux 的 Windows 子系统

  1. 安装适用于 Linux 的 Windows 子系统 (WSL)

  2. 从 Google Maven 下载 aapt2(Linux 版本)(下载 jar 文件,然后使用“jar xf”提取其内容),例如https://dl.google.com/android/maven2/com/android/tools/build/aapt2/7.2.0-alpha06-7909850/aapt2-7.2.0-alpha06-7909850-linux.jar 或在这里获取:https://drive.google.com/file/d/1sb9KevVgRA9PTAGqc74rWorWBtXWYnWq/view?usp=sharing (您可以从https://www.java.com/en/download/ 下载Java 以获取jar 实用程序。)

  3. 创建一个合适的AndroidManifest.xml(这里的例子:https://drive.google.com/file/d/1sb0BeyWcs7edz_qL9aTqkt55pGmhhJ4e/view?usp=sharing);更改包属性以匹配您的应用 ID,例如 com.company.yourgame。确保该文件使用 Linux 行尾(它也可能适用于 Windows 行尾)。

  4. 在 Windows 上为资产包(比如 C:\assetpack)创建一个目录。

  5. 把 aapt2 和 AndroidManifest.xml 放到那个目录下。

  6. 在assetpack目录下创建Assets目录。将所有资产放在那里。

  7. 下载此 bash 脚本文件:https://drive.google.com/file/d/1saOfj5a3wHIrB5nTJsDqv0GhMnaP3m_n/view?usp=sharing 并将其放入assetpack 目录。确保它具有 Linux 行结尾。它不适用于 Windows 行尾。

  8. 启动WSL并通过“cd /mnt/c/assetpack”导航到assetpack目录

  9. 运行“./createassetpack.sh assets.zip com.company.yourgame”,其中 com.company.yourgame 是您应用的 ID。 assets.zip 是最终 zip 文件的名称。

  10. assets.zip 现在将出现在assetpack 目录中。将此文件复制到您的解决方案中,假设是您的 Xamarin.Android 项目下的assetpack\assets.zip。

  11. 转到您的 Xamarin.Android 项目并使用文本编辑器编辑其项目文件。在 XML 中的所有 ItemGroups 之后添加以下代码:

    <ItemGroup>
        <AndroidAppBundleModules Include="assetpack\assets.zip" />
    </ItemGroup>
    
  12. 现在,您可以通过 AssetManager 访问您的资产。例如,在您的 MainActivity.cs 中,您可以编写:

    using(var stream = Assets.Open("myasset.png"))
    {
        //Code goes here
    }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-28
    • 2020-04-14
    • 2011-09-09
    • 2015-12-24
    • 2018-08-20
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    相关资源
    最近更新 更多