3

私の Android アプリは phonegap 2.7 とバーコードスキャナー プラグインを使用しています。エミュレーターを使用してテストすると、すべて正常に動作します。

ただし、自分のデバイスでテストすると、最初に「スキャン」を押すと、次のようなページにリダイレクトされます。

「Web ページが利用できません: Web ページ ファイル:///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

ただし、解決策はありません:(

編集:言語を英語に設定してテストしました。実際、次のように表示されます: file:///android_asset/html-en/index.html の Web ページを読み込めませんでした。問題はスキャナーにあることがわかりました。インストール後に初めて起動されるたびに、そのページにリダイレクトされます... ZXing はおそらくこれにアクセスしようとしています: https://github.com/zxing/zxing/blob/master/android/assets/html-en /index.html . 理由はわかりませんが、ソース コードに何も変更を加えていません。

4

2 に答える 2

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 を変更する必要はありません。

于 2013-08-24T19:17:58.297 に答える
1

解決策: アプリの新しいバージョンがインストールされると、ZXing が HelpActivity を自動ロードすることがわかりました。そのアクティビティには、html-userlanguage へのリダイレクトがあります。簡単に修正できます: HelpActivity をロードしないようにスクリプト (com.google.zxing.client.android にあります) に指示するだけです。

于 2013-07-23T18:55:09.780 に答える