1

我創建了一個AS3移動應用程序,並通過flash CS6成功導出。爲AS3創建擴展文件Android Air App Flash cs6

在這個.apk中,我包含了我的視頻文件(將成爲Android平板電腦的演示文稿)。 .flvs的總大小是64mb。

當我試圖上傳到谷歌播放時,我得到了(預計)關於文件大小爲> 50mb的警告。

我花兩個小時試圖找到一個解決方法,包括使用jobb.batzipalign.bat,把文件放到main.1.obb和許多其他選項的格式。

Google網站似乎認爲我使用的是Eclipse(我不是使用Flash CS6),但我仍嘗試了所有這些工具,但得到的結果爲零。

我曾嘗試 http://developer.android.com/google/play/expansion-files.html -

似乎非常複雜,假設我有蝕。我甚至試圖將「android-sdk \ extras \ google \ play_apk_expansion」導入Flash構建器,但不是正確的項目擴展。

我找遍了整個堆棧溢出至比如文章:

[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

- 但是我沒有亞馬遜斗帳戶。也不知道什麼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 ? 
+0

同樣的問題在這裏。沒有答案呢? – Saariko 2013-05-01 09:27:00

+0

對不起,Saariko,我沒有得到它。我很幸運地自己發佈它,我們只是將.apk文件放在我們自己的網站上,因爲它是針對客戶的,而不是一般的社區。 – Daragh 2013-05-01 13:59:14

回答

3

您不必準備obb - 不需要使用jobb。

使用擴展文件的最簡單的方法是製作一個小的swf作爲預加載器,並將其用作主apk,其他swf文件(將被加載)與所有大數據一起存儲在obb文件中。

這樣:
preloader.swf的 - > APK
app.swf - > OBB

在這種情況下,你不必做一個OBB文件,只需上傳新的APK至Google Play之後在擴展文件部分上傳apk文件,將'沒有擴展文件'更改爲'上傳新文件'並選擇你的app.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); 
} 

,你可以添加在預加載啓動畫面;)

如果你必須更新你也必須用新的mainVersion APK編譯OBB文件

如果您使用zip文件而不是swf,則必須上傳zip文件,而在preloader中則必須處理它 - 從解壓縮的文件夾中解壓縮並使用數據。

+0

感謝您的代碼。這很多作品完美。現在我該如何讀取obb文件中的內容。我一次只能加載一個.obb文件,裏面沒有.swf文件。 – Bhaijaan 2014-07-02 08:16:26

+0

我如何測試這個工作?它正在加載的文件在我的文件系統上不存在,對吧? – 2014-07-09 10:42:10

+0

@Bhaijaan @Bhaijaan我只用了一個swf,如果你想擁有更多的你可能想壓縮它們並將zip文件作爲擴展文件上傳,但是在你的容器文件中,你必須將obb作爲一個zip文件,然後使用favorite將其解壓縮用於as3的zip庫,將zip從zip複製到應用程序已知位置,然後從那裏加載swf。缺點是第一次運行需要更長的時間,因爲解壓縮 – Misiek 2014-07-09 12:04:01