1

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

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

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

我花了两个小时试图找到解决方法,包括使用jobb.batzipalign.bat、将文件转换为main.1.obb格式和许多其他选项。

谷歌网站似乎认为我正在使用 Eclipse(我不是我使用 Flash CS6),但无论如何我尝试了所有这些工具,但结果为零。

我努力了 http://developer.android.com/google/play/expansion-files.html -

似乎非常复杂,并假设我有日食。我什至尝试将“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 应用程序 ID 和扩展文件访问

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

APK 50meg+ 扩展包和 Flash

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

创建APK扩展文件的步骤

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

APK 50meg+ 扩展包和 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 ?
4

1 回答 1

3

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

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

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

在这种情况下,您不必制作 obb 文件,只需将新的 apk 上传到 google play 并在扩展文件部分中上传 apk 后将“无扩展文件”更改为“上传新文件”并选择您的 app.swf 文件. 谷歌会把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 文件,并且在预加载器中您必须对其进行处理 - 解压缩并使用解压缩文件夹中的数据。

于 2014-02-06T09:53:08.330 回答