- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Netbeans 8.1 和 gluonhq jfxplugin 2.2.0。
我正在尝试读取条形码,并创建了一个新项目(标准的 hello world)。我更改了按钮处理程序以调用函数 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));
}
如果有任何帮助,我将不胜感激
最佳答案
您需要在 AndroidManifest.xml 文件中定义 com.gluonhq.charm.down.android.scan.SCAN
Intent 。在您的主要 Activity 定义下方添加以下 Activity 定义:
<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 核心库添加额外的依赖项,因为它似乎在单独依赖 charm 库时不会自动包含:
dependencies {
androidRuntime 'com.google.zxing:core:3.2.1'
}
此外,您还必须将 CAMERA 权限添加到您的 list 中:
<uses-permission android:name="android.permission.CAMERA"/>
关于android - Gluon Charm Down 条形码扫描器 - 未找到 Intent 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162165/
我是一名优秀的程序员,十分优秀!