当前位置: 首页 > 知识库问答 >
问题:

Nativescript+Angular-无法实例化接收器....没找到课

颛孙玉石
2023-03-14

我正在做一个应用程序,我想注册一个新的广播接收器。但是,当意图被触发时,应用程序无法找到接收器类,并以以下错误失败:

System.err:无法实例化接收器org.nativescript.ntngcallerid.phoneCallReceiver:java.lang.ClassNotFoundException:在路径:dexpathList[[zip文件“/data/app/org.nativescript.ntngcallerid.ntncallerid.1v-8qmmekbejsoeol26_7q==/base.apk”],data/app/org.nativescript.ntngcallerid-1v-8qmmekbejsoeol26_7q==/base.apk!/lib/x86,/system/lib,/system/product/lib]]

电话听筒类:

import * as Toast from "nativescript-toast";

declare var android: any;

@JavaProxy("com.tns.PhoneCallReceiver")
export class PhoneCallReceiver extends android.content.BroadcastReceiver {

    constructor() {
        super();

        return global.__native(this);
    }

    // @ts-ignore
    onReceive(context: android.content.Context, intent: android.content.Intent): void {
        // @ts-ignore

        console.log("Receiver start");
        Toast.makeText(" Receiver start ", "2000").show();
    }
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="__PACKAGE__"
          android:versionCode="10000"
          android:versionName="1.0">

    <supports-screens android:smallScreens="true"
                      android:normalScreens="true"
                      android:largeScreens="true"
                      android:xlargeScreens="true"/>

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
    <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    <application android:name="com.tns.NativeScriptApplication"
                 android:allowBackup="true"
                 android:icon="@drawable/icon"
                 android:label="@string/app_name"
                 android:theme="@style/AppTheme">

        <activity android:name="com.tns.NativeScriptActivity"
                  android:label="@string/title_activity_kimera"
                  android:configChanges="keyboard|keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout|locale|uiMode"
                  android:theme="@style/LaunchScreenTheme">

            <meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme"/>

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name="com.tns.ErrorReportActivity"/>


        <receiver android:name="com.tns.PhoneCallReceiver"
                  android:enabled="true"
                  android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.PHONE_STATE"/>
            </intent-filter>
        </receiver>


    </application>
</manifest>

共有1个答案

邢嘉祯
2023-03-14

您必须在webpack.config.js中添加广播接收器的条目

// Add your custom Activities, Services and other Android app components here.
const appComponents = [
      "tns-core-modules/ui/frame", 
      "tns-core-modules/ui/frame/activity",
      "path/to/phone-call-receiver.ts"
];
 类似资料:
  • 我在跟随一位导游http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/对于GCM。 目前,我被困在接收通知的部分。有时,当我运行代码时,它会因以下错误而崩溃: 7.517:E/AndroidRuntime(8601):致命异常:mai

  • 我已经将Android应用程序上传到playstore。在第一次下载时,它会崩溃,但在那之后,它工作正常。它将错误显示为无法实例化接收器com。谷歌。Android应用程序。分析。由java引起的AnalyticsReceiver。lang.ClassNotFoundException:未找到类“com.google.android.apps.analytics.analytics.Analyti

  • 我试图使用来自kafka的消息,源消息以Avro格式序列化(我使用了AWS模式注册表)。 连接器配置: 但是当我尝试配置接收器连接器时,它会出现以下错误。

  • 我已经创建了AWS ec2实例并关联到一个安全组。在关联的安全组中,我已经向所有人开放了HTTP(HTTP, TCP,80,0.0.0.0/0)、SSH(SSH, TCP,22,0.0.0.0/0)和ICMP(All ICMP, All, N/A,0.0.0.0/0)。 但当我尝试ping到实例时,它失败了;给出请求超时。入站规则设置 此外,使用PuTTY或openssh连接到实例也会失败。它给出

  • 我已经使用testcontainers创建了一个Postgres实例。容器启动了,但我无法访问它。 我已经尝试使用DBeaver在容器化数据库中连接。在eclipse控制台中,一切似乎都很好: 01:29:34.662[主]调试com。github。多克雅娃。果心命令AbstrDockerCmd-Cmd:com。github。多克雅娃。果心命令CreateContainerCmdImpl@7338

  • 我正在学习GCM(谷歌云消息传递,旧的不建议使用的名称是C2DM)。我使用不同的设备。操作运行良好,即使应用程序关闭。但是在nexus平板电脑上,当应用程序关闭时会发生错误。如果应用程序正在进行,我的GCM代码在我尝试的所有设备上都能工作。现在:我寻找这些问题,我发现有其他的错误清单。如果我的清单是错误的,为什么除了nexus平板电脑以外的其他设备都正确执行我的代码?我可以认为我的清单是错误的吗?