- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个在设备上运行激光扫描仪的 Cordova 插件,其 Main.java 如下所示:
package com.example.plugin;
import org.apache.cordova.*;
import org.json.JSONArray;
import org.json.JSONException;
import java.security.PublicKey;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.util.Log;
public class Hello extends CordovaPlugin {
public static final int REQUEST_CODE = 0x0ba7c0de;
@Override
public boolean execute(String action, JSONArray data, CallbackContext callbackContext) throws JSONException {
if (action.equals("scan")) {
scan();
return true;
} else {
return false;
}
}
public void scan() {
Intent intentService = new Intent("com.hyipc.core.service.barcode.BarcodeService2D");
intentService.putExtra("KEY_ACTION", "UP");
this.cordova.startActivityForResult((CordovaPlugin) this, intentService, REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
Log.i("scan", "everything works fine");
}
}
当我运行插件时,我在错误日志中得到了这个:
07-11 12:03:33.541: E/AndroidRuntime(5258): FATAL EXCEPTION: main
07-11 12:03:33.541: E/AndroidRuntime(5258): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ionicframework.curierapp266167/com.hyipc.core.service.barcode.BarcodeService2D}: java.lang.ClassNotFoundException: Didn't find class "com.hyipc.core.service.barcode.BarcodeService2D" on path: DexPathList[[zip file "/data/app/com.ionicframework.curierapp266167-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ionicframework.curierapp266167-2, /vendor/lib, /system/lib]]
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.access$600(ActivityThread.java:162)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.os.Handler.dispatchMessage(Handler.java:107)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.os.Looper.loop(Looper.java:194)
07-11 12:03:33.541: E/AndroidRuntime(5258): at android.app.ActivityThread.main(ActivityThread.java:5392)
07-11 12:03:33.541: E/AndroidRuntime(5258): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 12:03:33.541: E/AndroidRuntime(5258): at java.lang.reflect.Method.invoke(Method.java:525)
07-11 12:03:33.541: E/AndroidRuntime(5258): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
07-11 12:03:33.541: E/AndroidRuntime(5258): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-11 12:03:33.541: E/AndroidRuntime(5258): at dalvik.system.NativeStart.main(Native Method)
07-11 12:03:33.541: E/AndroidRuntime(5258): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.hyipc.core.service.barcode.BarcodeService2D" on path: DexPathList[[zip file "/data/app/com.ionicframework.curierapp266167-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.ionicframework.curierapp266167-2, /vendor/lib, /system/lib]]
我已将它添加到我的 AndroidManifest.xml 文件中,但我很确定它有问题。
<activity android:label="@string/share_name" android:name="com.hyipc.core.service.barcode.BarcodeService2D">
<intent-filter>
<action android:name="com.hyipc.core.service.barcode.BarcodeService2D" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
编辑
如果我将我的 list 文件编辑成这个,我会得到 No Activity found to handle Intent 错误。
<activity android:label="@string/share_name" android:name="com.hyipc.core.service.barcode.BarcodeService2D">
<intent-filter>
<action android:name="android.intent.action.LAUNCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
此外,如果我尝试这样开始 Activity :
cordova.getActivity().startService(intentService);
扫描仪启动没有错误,但我不知道如何得到它的结果。
最佳答案
从评论列表中的讨论我们知道BarcodeService2D
,是一个Service
,使用startService
可以成功启动该组件。现在问题变成了“如何将数据从我的服务传递到 Activity
实例”? StackOverflow 中有很多答案,请参阅 this和 this .只需谷歌搜索即可。
对于“那么服务不同于 Activity ?”这个问题,答案是肯定的。 Activity
通常代表应用中的一个屏幕。它包含各种 View
、Drawable
和许多其他内容,您可以直接与它交互。 Service
通常用于在没有任何 UI 的情况下在后台执行长时间运行的任务。有关详细信息,请参阅 the developer site
关于java - 在 AndroidManifest 中授予 Activity 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38303058/
我的android studio版本是3.4.0。 Gradle版本为3.4.0。我尝试清理项目,重新安装Android Studio,修改了Project Setting Build选项。到目前为止
我的应用程序仅由一个 application 模块组成。我最近试图将它分成 2 个模块(一个 feature 基础和一个 application apk 一个)以便稍后添加一个 instant-app
我正在尝试 http://developer.android.com/ 上的教程并在 AndroidManifest.xml 文件上遇到错误。发生的事情是,我在创建 Activity 时犯了一个错误(
我正在尝试将我的 ionic 3 应用程序 list 中的 allowBackup 属性设置为 false,但 gradle 提示出现以下错误: 来自 AndroidManifest.xml:4:18
我在我的 android 应用程序的 AndroidMenifest.xml 文件中遇到了以下两行: 为什么我们在 中写“编码”标签,它的用途是什么? 写第二行的目的是什么? 如果有人知道这一点
是否有任何独立的(独立于 Eclipse 或 IDE 特定的)工具可以检查 AndroidManifest.xml 文件是否有错误? 我最近遇到了一个恼人的问题,我输入了 reciever 而它本应该
我的一个项目的 AndroidManifest.xml 变得越来越大(> 1000 行),因为我必须对某些文件类型使用react并且涵盖所有情况变得越来越复杂。我想知道 list 大小是否有任何限制。
我的 AndroidManifest.xml 文件没有创建应有的启动器图标。 XML 如下:
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.x
我正在尝试使用eclipse中的gradle构建一个android应用程序,并且我试图在项目根目录中使用命令gradle build 构建apk, 我在 $projdir/build/intermed
简单的问题,但经过长时间的谷歌搜索,我还没有看到一个好的答案。 我有 2 种内置类型:调试、发布 我有 2 种口味:口味 1、口味 2 这将创建 4 个变体。 调试 + flavor 1 释放+ fl
我有这个错误 I/Ads (21352): Starting ad request. I/Ads (21352): SDK version: afma-sdk-a-v15090040.
每当我尝试运行该应用程序时,都会显示一个错误,并且来自 list 。下面是 list 和 logcat。请帮忙。 Manifest.xml
我可以在 AndroidManifest.xml 中设置一个设置,让我的应用程序写入文件系统而不仅仅是 SD 卡吗? *干杯 最佳答案 您应该使用定义的数据存储选项之一 here用于存储您的数据。要访
我按照一些教程使用 phonegap 的条形码扫描器插件。但是当我从现有源创建一个新的 android 项目来创建条码库时 (step 6 in this page)我收到错误:“AndroidMan
我的内存非常模糊,但是 Android SDK 中包含一个工具,当您针对未签名或调试签名的应用程序 APK(我不记得是哪个)运行它时,它会输出一个“已处理”的 AndroidManifest 文件。
是否可以在文件中指定一些信息,例如 API key ,然后以某种方式将此信息注入(inject) AndroidManifest 文件(可能在构建过程中)? 对于我的特定用例,documentatio
谁能解释一下是什么: tools:replace = "icon, label" 这之间有什么区别: tools:replace="android:icon,android:allowBackup,a
我正在尝试在嵌套 fragment 中显示 GoogleMaps: // inflate and return the layout View v = inflater.inflate
我正在发布针对中国市场的版本,我们都知道他们不支持 Playstore。从今以后,我们决定在中国商店发布。 其中一家中国商店要求在 list 文件中包含包名必须包含应用程序名称。但是现在我们的主 li
我是一名优秀的程序员,十分优秀!