在Android设备上找不到“网页未找到”“file:///android_asset/html-nl/index.html not found”错误

时间:2013-07-23 17:06:28

标签: android cordova phonegap-plugins barcode-scanner

我的Android应用程序正在使用phonegap 2.7和barcodescanner插件。当我使用模拟器测试它时,一切正常。

但是,当我在设备上测试时,第一次点击“扫描”时,它会重定向到一个页面:

  

“网页不可用:网页   file:///android_asset/html-nl/index.html无法加载“。

(我翻译了这个,所以使用英文设备的错误可能略有不同)

当我点击“继续”时,该应用程序继续正常运行。奇怪的是,这只在我第一次安装应用程序时发生。当我第二次点击“扫描”时,一切正常。

(我的代码的一部分): AppActivity.Java

package com.myapp.app;

import org.apache.cordova.DroidGap;
import android.os.Bundle;

public class AppActivity extends DroidGap {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

index.html(在assets / www中):

<!DOCTYPE HTML>
<html>
 <head>
  <title>PhoneGap</title>
  <script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>
  <script type="text/javascript" src="barcodescanner.js"></script>
  <script type="text/javascript" src="main.js"></script>

 </head>
 <body>
    <h1>Testing!</h1>

    <a href="#" onclick="scanCode();">Scan Code</a> 
  </body>
</html>

在main.js中,有scanCode()函数:

var scanCode = function() {
window.plugins.barcodeScanner.scan(
        scanSuccess,
        function(error) {
            alert("Scan failed: " + error);
        });
};

额外信息:我母语的缩写是“nl”...它可能与它无关,但我想我让你们知道......

提前致谢!

编辑:它可能与语言有关...本主题描述了完全相同的问题...:http://www.anddev.org/other-coding-problems-f5/problem-with-scanner-in-motorola-xt320-t2178445.html

但是没有解决方案:(

编辑:用我的语言设置为英语对其进行测试。实际上,它显示:无法加载文件:///android_asset/html-en/index.html的网页。我发现问题在于扫描仪。每次安装后第一次触发它,它都会重定向到该页面...... ZXing可能正试图达到这个目标:https://github.com/zxing/zxing/blob/master/android/assets/html-en/index.html。不知道为什么,没有改变任何东西到源代码。

2 个答案:

答案 0 :(得分:1)

解决方案: 我发现当安装新版本的应用程序时,ZXing会自动加载HelpActivity。 在该活动中,重定向到html-userlanguage。 易于修复:只需告诉脚本(它在com.google.zxing.client.android中)不要加载HelpActivity。

答案 1 :(得分:1)

问题是在将应用程序安装到设备时,android / assets文件夹未打包在.apk文件中。我正在使用Android Studio,所以这就是我在build.gradle文件中所拥有的:

android {     compileSdkVersion 16     buildToolsVersion“17.0.0”

defaultConfig {
    minSdkVersion 13
    targetSdkVersion 16
}

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
}

}

无需修改HelpActivity.java。