Gluon Charm Down条码扫描器 - 未找到Intent处理程序

时间:2016-05-11 12:05:29

标签: android mobile barcode-scanner gluon charm

我正在使用Netbeans 8.1和gluonhq jfxplugin 2.2.0。

我正在尝试阅读条形码,并创建了一个新项目(标准的hello世界)。我更改了按钮处理程序以调用函数UpdateText()(下面),该函数又调用Charm Down Scan服务。

当我运行应用程序并单击按钮时,我在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));
    }

我非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

您需要在AndroidManifest.xml文件中定义com.gluonhq.charm.down.android.scan.SCAN意图。在主要活动定义下添加以下活动定义:

<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文件而不是生成默认文件:

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"/>