AssetsManager update文件没下下来,创建的都是目录

解方方法]:用了最新的3.0rc1版本,啥也没有改就自已行了

用Cocos Code IDE在win32模式下,AssetsManager 在update后,文件没下下来,创建的都是以文件名为名的目录,比如:Images/xxx.jpg,这个“Images/xxx.jpg”是个目录,应当是Images这个目录有一个文件是xxx.jpg的图片啊,这是怎么回事?代码如下:

var storagePath = (cc.fileUtils ? cc.fileUtils.getWritablePath() : "/");
        this._assetsManager = new cc.AssetsManager("project.manifest", storagePath);
        if (!this._assetsManager.getLocalManifest().isLoaded())
        {
            cc.log("Fail to update assets, step skipped.");
        }
        else
        {
            var that = this;
            var listener = new cc.EventListenerAssetsManager(this._assetsManager, function(evt) {
                var scene;
                switch (evt.getEventCode())
                {
                case cc.EventAssetsManager.ERROR_NO_LOCAL_MANIFEST:
                    cc.log("No local manifest file found, skip assets update.");
                    break;
                case cc.EventAssetsManager.UPDATE_PROGRESSION:
                    cc.log("UPDATE_PROGRESSION:"+evt.getPercent());
                    break;
                case cc.EventAssetsManager.ERROR_DOWNLOAD_MANIFEST:
                case cc.EventAssetsManager.ERROR_PARSE_MANIFEST:
                    cc.log("Fail to download manifest file, update skipped.");
                    break;
                case cc.EventAssetsManager.ALREADY_UP_TO_DATE:
                case cc.EventAssetsManager.UPDATE_FINISHED:
                    cc.log("Update finished.");
                    break;
                case cc.EventAssetsManager.ERROR_UPDATING:
                    cc.log("Asset update error: " + evt.getAssetId() + ", " + evt.getMessage());
                    break;
                default:
                    break;
                }
            });

            cc.eventManager.addListener(listener, 1);
            this._assetsManager.update();
            this._assetsManager.retain();
        }

```



project.manifest的内容为:
{
    "packageUrl" : "http://tools.itharbors.com/assets_manager/AMTestScene1/",
    "remoteManifestUrl" : "http://tools.itharbors.com/assets_manager/AMTestScene1/project.manifest",
    "remoteVersionUrl" : "http://tools.itharbors.com/assets_manager/AMTestScene1/version.manifest",
    "version" : "1.0.0",
    "engineVersion" : "3.0 beta",

    "assets" : {
        "Images/background1.jpg" : {
            "md5" : "..."
        }
    },
    
    "searchPaths" : 
        "res/"
    ]
}

我去抓凌华彬来看这个问题,哈哈,请稍等

实在抱歉,这个是我们工作的疏忽,由于AssetsManager的接口以及Manifest格式还没有彻底稳定,实际上我们最近一直在完善它的设计,这导致了在服务器上的manifest文件格式与项目中文件格式不同。你可以尝试在你的服务器端放上一份正确的远程manifest文件以及它的资源文件,附件中是所有需要的文件,同时你需要把本地Manifest中的远程地址修改为你的服务器端上的地址,这样就可以正确更新了

稍后我会修改服务器上的文件来修复这个问题

看了一下manifest中的
“groupVersions” : {
“1” : “1.1.0”
},

以及"assets" 中的 “group” : “1”,难道是不用再自已写代码反复检查版本做更新处理了,AssetsManager已经实现多个版本的自行更新了

我去试一下

@fysp
我把你帖中的附件下下来,放到服务器端(已测试过直接用网址是可以访问到project.manifest文件的)
我把反复试了很多次,问题依旧,如下:
第一执行时报下提示:
系统找不到指定的路径。
JS: Asset update error: background, Can not create file C:/Users/Administrator/AppData/Local/PrebuiltRuntimeJs/Images/background1.jpg

我就在 C:/Users/Administrator/AppData/Local/PrebuiltRuntimeJs/ 下手工建立一个目录“Images”

再次执行更新,报如下提示:
系统找不到指定的路径。
JS: Asset update error: background, Can not create file C:/Users/Administrator/AppData/Local/PrebuiltRuntimeJs/Images/background1.jpg
但在Images目录下创建了一个名为“background1.jpg”的目录,而不是文件

然后我也试过把本地的project.manifest文件改成跟远端一样,但是把版本号改低一个版本,并且把已创建的““background1.jpg”目录给删除,这时执行更新时提示:
系统找不到指定的路径。
JS: Update finished.

我正在更新我们的服务器端文件,请稍等

服务器已更新,能不能用原始Manifest和测试代码重新测试一下?

本地project.manifest文件
{
“packageUrl” : “http://tools.itharbors.com/assets_manager/AMTestScene2/”,
“remoteManifestUrl” : “http://tools.itharbors.com/assets_manager/AMTestScene2/project.manifest”,
“version” : “1.0.0”,
“groupVersions” :
{
“1” : “1.1.0”
},
“engineVersion” : “3.0 beta”,

"assets" :
{
    "background" :
    {
        "path" : "Images/background1.jpg",
        "md5" : "....",
        "group" : "1"
    }
},

"searchPaths" :

]

}

操作代码跟之前的帖一样,执行后打印如下:
JS: UPDATE_PROGRESSION:0
系统找不到指定的路径。
JS: Update finished.

没有创建文件夹,也没有下载任何文件

试验二:
本地project.manifest文件
{
“packageUrl” : “http://tools.itharbors.com/assets_manager/AMTestScene1/”,
“remoteManifestUrl” : “http://tools.itharbors.com/assets_manager/AMTestScene1/project.manifest”,
“remoteVersionUrl” : “http://tools.itharbors.com/assets_manager/AMTestScene1/version.manifest”,
“version” : “1.0.0”,
“engineVersion” : “3.0 beta”,

"assets" : {
    "Images/background1.jpg" : {
        "md5" : "..."
    }
},

"searchPaths" : 
    "res/"
]

}

运行结果:
JS: UPDATE_PROGRESSION:0
JS: UPDATE_PROGRESSION:0
系统找不到指定的路径。
JS: Asset update error: background, Can not create file C:/Users/Administrator/AppData/Local/PrebuiltRuntimeJs/Images/background1.jpg

然后我再提示中的目录手动创建一个文件夹“Images”,然后再把C:/Users/Administrator/AppData/Local/PrebuiltRuntimeJs/下的除“Images”之外的所有文件删除,再次运行,结果如下:
JS: UPDATE_PROGRESSION:0
JS: UPDATE_PROGRESSION:0
系统找不到指定的路径。
JS: Asset update error: background, Can not create file C:/Users/Administrator/AppData/Local/PrebuiltRuntimeJs/Images/background1.jpg

我查看对应的目录,发现"Images"目录下创建了一个空的文件夹“background1.jpg”

这个帖子没有然后了吗?
最终好了吗?

还在待解决中,这个问题我放到后面去解决了,最后的解决方式我到时会帖上来,给大家一个参考

麻烦写一个详细热更新教程可以吗?谢谢。。。。

看js-tests里面的例子,模仿着做,尝试了很多次,都没成功。。。555.。。

我lua的test也是一样,他说can not open downloaded zip file 求解答,解答

用了最新的rc1版本就行了,同样的代码

— Begin quote from ____

引用第12楼bcxiaolang008于2014-08-05 17:20发表的 :
我lua的test也是一样,他说can not open downloaded zip file 求解答,解答 http://www.cocoachina.com/bbs/job.php?action=topost&tid=206264&pid=1021983

— End quote

我也是同样情况,3.8.0和3.8.1都没成功过