Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 资产文件夹中的XML文件无法访问res/raw文件夹_Android_Xml_Html_Phonegap Build - Fatal编程技术网

Android 资产文件夹中的XML文件无法访问res/raw文件夹

Android 资产文件夹中的XML文件无法访问res/raw文件夹,android,xml,html,phonegap-build,Android,Xml,Html,Phonegap Build,我应该先介绍一些背景知识。我们即将发布一款针对android平台的非盈利html5儿童游戏。我已经使用eclipse创建了一个apk文件,但是没有音频,游戏的其余部分工作正常。我已经尝试过电话差距,但没有音频的游戏。经过几天的研究和可能的解决方案,我决定在这里询问stackoverflow 游戏使用html/css/js Eclipse中的项目文件夹结构为: assetsandroid_assets->www->index.html、game.xml、js文件夹游戏引擎、样式文件夹和资产文件夹。

我应该先介绍一些背景知识。我们即将发布一款针对android平台的非盈利html5儿童游戏。我已经使用eclipse创建了一个apk文件,但是没有音频,游戏的其余部分工作正常。我已经尝试过电话差距,但没有音频的游戏。经过几天的研究和可能的解决方案,我决定在这里询问stackoverflow

游戏使用html/css/js

Eclipse中的项目文件夹结构为: assetsandroid_assets->www->index.html、game.xml、js文件夹游戏引擎、样式文件夹和资产文件夹。 子资源文件夹包含->音乐文件夹、图像文件夹和背景文件夹

错误消息: index.html文件加载game.xml。xml文件将加载资产文件夹中的所有文件。但是,在logcat中找不到所有音乐文件: 无法打开文件“/android_asset/www/assets/music/song.mp3”。没有此类文件或目录。我的xml文件声音调用是:。 我使用这个相同的参考结构来处理当前加载良好的图像和背景。从外部url(如www.oursever.com/song.mp3)加载音乐时。当在安卓设备上作为apk文件运行时,游戏能够很好地播放歌曲。因此,代码是正确的,但apk文件中歌曲的本地文件路径是错误的

经过大量阅读,我了解到资产文件夹是压缩的,不建议在不解压缩的情况下读取该文件夹中的音频文件。另一种方法是将mp3文件放在res/raw文件夹中。我将xml更改为:。但是,我收到了关于找不到文件的相同错误。我知道放置在res文件夹中的项目使用标识符。但我不确定应该在xml源文件路径中放置什么来引用res/raw中的歌曲。我使用以下代码打印出歌曲的文件路径:System.out.printlnRaw path:+getStringR.raw.menu

哦,我尝试的另一种方法是将整个应用程序推送到SD卡上。我仍然收到找不到文件错误

应用程序权限:

 - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>   
 - <uses-permission android:name="android.permission.INTERNET"/>
 - <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.brg.example"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.brg.example.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
更新6
我决定使用url从远程服务器加载媒体文件。我最初认为,与其他平台相比,将html项目转换为带有音频的android webview花费的时间更少。我错了。我们将来可能会再次访问Android。PhoneGap支持团队在我们为他们的服务付费后基本上保持沉默。我感谢所有决定浏览这篇帖子的人。

试试这个:android。resource://com.your.package/raw/filename

我刚刚遇到了一个类似的问题——对我来说,关键是省略了媒体文件的扩展名:android。resource://com.mycompany/raw/song

我将您的建议用于示例项目。我收到打开文件“android”失败的错误消息。resource://com.mycompany/raw/song.mp3'. 没有这样的文件或目录。Song.mp3位于res/raw文件夹中。我尝试了另一种方法,尝试从SD卡读取歌曲,当我尝试此方法时,我收到了一个拒绝许可的错误,因此它确实找到了文件。即使我已经阅读了\u外部\u存储权限集。您的软件包名称是否仅为“com.mycompany”?它应该分为三个部分。你确定你用的是整个软件包的名字吗?它只有两个部分,因为我从一个只列出两个部分的示例中创建了这个项目。但我要从头开始做一个新项目,我会让你知道进展如何,谢谢安德鲁!我已经创建了一个新的示例项目,它在开始时加载除歌曲之外的所有内容。如果你想在下面的url上看到这个小项目:转到文件,下载。我收到了关于找不到音乐文件的相同错误。感谢您的回复,但我在更新5>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.brg.example"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.brg.example.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>