3

我的 android 应用正在使用 phonegap 2.7 和barcodescanner 插件。当我使用模拟器对其进行测试时,一切正常。

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

“网页不可用:无法加载网页文件:///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(在资产/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

但是没有解决方案:(

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

4

2 回答 2

1

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

于 2013-07-23T18:55:09.780 回答
1

问题是在将应用程序安装到设备时, .apk 文件中没有打包 android/assets 文件夹。我正在使用 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。

于 2013-08-24T19:17:58.297 回答