Java 安卓obb/zip音乐&;声音加载(cocos2dx)
我用这个答案:把我的android应用程序拆分成APK和ZIP,它就像一个魔咒 虽然应用程序正常启动,但所有声音都不会播放。 Cocos2dxMusic.java&Cocos2dxSound.java似乎无法读取zip中的声音文件。所有资源(图像、动画等)均已正确加载,但声音(音乐和SFX)似乎未加载 与assets.zip路径相对的路径是正确的,如日志所示。 有什么线索吗?我正在使用cocos2d-x2.2.0 以下是抛出的错误代码:Java 安卓obb/zip音乐&;声音加载(cocos2dx),java,android,audio,cocos2d-x,Java,Android,Audio,Cocos2d X,我用这个答案:把我的android应用程序拆分成APK和ZIP,它就像一个魔咒 虽然应用程序正常启动,但所有声音都不会播放。 Cocos2dxMusic.java&Cocos2dxSound.java似乎无法读取zip中的声音文件。所有资源(图像、动画等)均已正确加载,但声音(音乐和SFX)似乎未加载 与assets.zip路径相对的路径是正确的,如日志所示。 有什么线索吗?我正在使用cocos2d-x2.2.0 以下是抛出的错误代码: 03-20 08:29:08.275: E/Cocos2d
03-20 08:29:08.275: E/Cocos2dxMusic(31653): error: Attempt to invoke virtual method 'android.content.res.AssetFileDescriptor.com.android.vending.expansion.zipfile.ZipResourceFile.getAssetFileDescriptor(java.lang.String)' on a null object reference
03-20 08:29:08.275: E/Cocos2dxMusic(31653): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.AssetFileDescriptor com.android.vending.expansion.zipfile.ZipResourceFile.getAssetFileDescriptor(java.lang.String)' on a null object reference
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at org.cocos2dx.lib.Cocos2dxMusic.createMediaplayer(Cocos2dxMusic.java:249)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at org.cocos2dx.lib.Cocos2dxMusic.playBackgroundMusic(Cocos2dxMusic.java:112)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at org.cocos2dx.lib.Cocos2dxHelper.playBackgroundMusic(Cocos2dxHelper.java:143)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at org.cocos2dx.lib.Cocos2dxRenderer.nativeRender(Native Method)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at org.cocos2dx.lib.Cocos2dxRenderer.onDrawFrame(Cocos2dxRenderer.java:94)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
03-20 08:29:08.275: E/Cocos2dxMusic(31653): playBackgroundMusic: background media player is null
经过进一步研究,我注意到
zip\u resource\u file=apkexpansupport.getAPKExpansionZipFile(pContext,2,0)代码>返回NULL。其中“2”是我的android版本将上述行与zip_resource_file=new ZipResourceFile(Environment.getExternalStorageDirectory()+”/android/obb/“+pContext.getPackageName()+”/main.1.“+pContext.getPackageName()+”.zip”)合并代码>有效,但我不确定这是否是最干净的解决方案?