android - 为 AS3 android Air App Flash cs6 创建扩展文件

标签 android flash-cs6 mobile-application apk-expansion-files

我已经创建了一个 AS3 移动应用程序并通过 flash CS6 成功导出。

在此 .apk 中,我包含了我的视频文件(将成为 Android 平板电脑的演示文稿)。 .flvs 的总大小为 64mb。

当我尝试上传到 Google play 时,我收到了关于文件大小为 >50mb 的(预期的)警告。

我花了两个小时试图找到修复方法,包括使用 jobb.batzipalign.bat ,将文件放入 ma​​in 格式.1.obb 和许多其他选项。

Google 网站似乎认为我使用的是 Eclipse(我不是,我使用的是 Flash CS6),但我还是尝试了所有这些工具,但结果为零。

我试过了 http://developer.android.com/google/play/expansion-files.html -

但是 似乎非常复杂并且假设我有 eclipse 。我什至尝试将“android-sdk\extras\google\play_apk_expansion”导入 Flash builder,但不是正确的项目扩展。

我查看了整个 Stack Overflow 的文章,例如:

[ https://stackoverflow.com/questions/14385776/how-to-attach-a-expansion-file-to-an-as3-air-application/15232051#15232051][2]

– 但是目前还没有回应

AS3 / AIR Google Play application id and expansion files access

- 但是没有明确的答案,我什至不知道这首先是如何得到 .obb 文件的。

APK 50meg+ Expansion Packs and Flash

-但是我没有亚马逊 bucket 账户。也不确定什么是 android 共享存储。

Steps to create APK expansion file

– 但是正在使用旧版本的谷歌(我没有“添加额外按钮”)而且这不是来自 Flash As3 项目,并且再次依赖于 Eclipse。

APK 50meg+ Expansion Packs and Flash

-但是此人已经拥有 .obb 文件(如何?)。

如你所见,我尝试了很多不同的方式,但我不能简单地创建扩展方式。

简而言之;

    Dose anyone one have a clear cut step by step technique on how to upload an .apk
    created in Flash CS6 that is >50MB to Google Play ?

最佳答案

您不必准备 obb - 无需使用 jobb。

air 应用程序使用扩展文件最简单的方法是制作一个小的 swf 作为预加载器并将其用作主 apk,另一个 swf 文件(将被加载)将所有大数据存储在 obb 文件中。

所以:
preloader.swf -> apk
app.swf -> obb

在这种情况下,您不必制作 obb 文件,只需将新的 apk 上传到 google play,然后在扩展文件部分上传 apk 后,将“无扩展文件”更改为“上传新文件”并选择您的应用.swf 文件。 Google 会将 swf 更改为 obb,您不需要这样做。

当您为新应用上传第一个 apk 时,您将无法添加 obb 文件。您必须只上传 apk,然后添加新版本的 apk - 这会启用 obb 选项。

现在您必须在预加载器类中从 apk 加载 app.swf。我正在使用类似的东西:

private var mainVersion:String="1000001";
private var path:String = "Android/obb/com.your.app.id";
private var filename:String= "main." + mainVersion + ".com.your.app.id.obb";//patch for second obb
private var file:File;
private var fileStream:FileStream;
private var bytes:ByteArray;
private var applicationLoader:Loader;

public function App() 
{
    file = File.documentsDirectory.resolvePath(path + "/" + filename);

    if (file.exists)
    {
        loadSwf();
    }
}

private function loadSwf():void 
{
    fileStream = new FileStream(); 
    fileStream.open(file, FileMode.READ);
    bytes = new ByteArray();
    fileStream.readBytes(bytes);
    fileStream.close(); 

    var cont:LoaderContext = new LoaderContext();
    cont.allowCodeImport = true;

    applicationLoader = new Loader();
    applicationLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleAppLoaded);
    applicationLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, handleProgress);

    applicationLoader.loadBytes(bytes, cont);
}

private function handleProgress(e:ProgressEvent):void 
{
    trace(int(100 * e.bytesLoaded / e.bytesTotal))
    //just add progress bar if you want
}

private function handleAppLoaded(e:Event):void 
{
    addChild(applicationLoader);
}

并且您可以在预加载器中添加启动画面 ;)

如果你必须更新 obb 文件,你还必须使用新的 mainVersion 重新编译 apk

如果您想要使用 zip 文件而不是 swf,您必须上传一个 zip 文件,并且在预加载器中您必须处理它 - 解压并使用解压文件夹中的数据。

关于android - 为 AS3 android Air App Flash cs6 创建扩展文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232572/

相关文章:

android - adb命令检查设备是否加密

ios - 第三方 iOS AppStores(通步、sibche 等)如何对 App 进行签名和安装?

java - Appium - Android 重新获取和刷新网络状态

android - 当用户到达和离开特定位置时收到通知(Android 和 iOS)

java - 是什么导致通话录音机上的录音文件大小保存为 0 KB?

java - 地理编码器 getfromlocationName 使应用程序崩溃

android - 如何使用适用于 Android 的 Adob​​e AIR 设置 Admob

android - Flash CS6 Android 应用程序测试 - 未找到 USB 设备

android - 无法使用 SetShadowLayer 在位图上放置阴影

actionscript-3 - AS3 Flash错误 “Cannot access a property or method of a null object reference”