2

Netbeans 8.1 と gluonhq jfxplugin 2.2.0 を使用しています。

バーコードを読み取ろうとして、新しいプロジェクト (標準の Hello World) を作成しました。ボタン ハンドラーを変更して、関数 UpdateText() (以下) を呼び出すようにしました。この関数は、チャーム ダウン スキャン サービスを呼び出します。

アプリを実行してボタンをクリックすると、Android デバイス マネージャーに次のエラーが表示されます。

E/AndroidRuntime(3583): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.gluonhq.charm.down.android.scan.SCAN cat=[android.intent.category.DEFAULT] flg=0x4080000 }

このクラッシュは、scanservice.scan() 行で発生しています。

ボタン クリック ハンドラ コード:

    protected void UpdateText(Label label) {
        ScanService scanService = PlatformFactory.getPlatform().getScanService();
        StringProperty scannedString = scanService.scan();
        scannedString.addListener((obs, ov, nv) -> System.out.println("Scanned String = " + nv));
    }

助けていただければ幸いです

4

1 に答える 1

2

com.gluonhq.charm.down.android.scan.SCANAndroidManifest.xml ファイルでインテントを定義する必要があります。次のアクティビティ定義をメイン アクティビティ定義の下に追加します。

<activity android:name="com.gluonhq.charm.down.android.scan.zxing.CaptureActivity"
        android:screenOrientation="sensorLandscape"
        android:clearTaskOnLaunch="true"
        android:stateNotNeeded="true"
        android:windowSoftInputMode="stateAlwaysHidden">
    <intent-filter>
        <action android:name="com.gluonhq.charm.down.android.scan.SCAN"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

デフォルトでは、AndroidManifest.xml ファイルがプラグインによって内部で生成されます。カスタム AndroidManifest.xml ファイルをまだセットアップしていない場合は、プラグインが生成するファイルをコピーできます。デフォルトのバージョンは にありbuild/javafxports/tmp/android/AndroidManifest.xmlます。それを永続的な場所にコピーするだけsrc/androidです。次に、build.gradle を更新して、デフォルトの AndroidManifest.xml ファイルを生成する代わりに、カスタムの AndroidManifest.xml ファイルを使用するようにプラグインに指示します。

jfxmobile {
    android {
        manifest = 'src/android/AndroidManifest.xml'
    }
}

更新: チャームライブラリのみに依存する場合、自動的に含まれないように見えるため、zxingコアライブラリに追加の依存関係を追加する必要もあります:

dependencies {
    androidRuntime 'com.google.zxing:core:3.2.1'
}

さらに、マニフェストにも CAMERA 権限を追加する必要があります。

<uses-permission android:name="android.permission.CAMERA"/>
于 2016-05-11T13:09:30.933 に答える