uni-app 导入android包报错 plus.android.importClass('android.app.NotificationChannel')

uni-app 导入android包报错 plus.android.importClass(‘android.app.NotificationChannel’)

基本信息

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

示例代码:

var NotificationChannel = plus.android.importClass('android.app.NotificationChannel');  

console.log(NotificationChannel)  

返回null
23:58:16.645
null at codes/utils/notify.js:160

操作步骤:

var NotificationChannel = plus.android.importClass('android.app.NotificationChannel');  

console.log(NotificationChannel)  

返回null
23:58:16.645
null at codes/utils/notify.js:160

预期结果:

  • 返回 Object

实际结果:

  • null

bug描述:

plus.android.importClass('android.app.NotificationChannel');

更多关于uni-app 导入android包报错 plus.android.importClass('android.app.NotificationChannel')的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

targetSDKVersion 多少

更多关于uni-app 导入android包报错 plus.android.importClass('android.app.NotificationChannel')的实战教程也可以访问 https://www.itying.com/category-93-b0.html


感谢老师回复,我用的uniapp,nativejs

android 8系统才有NotificationChannel。目前测试android11可以正常获取到NotificationChannel

在 uni-app 中,plus.android.importClass 返回 null 通常有几个原因:

  1. 运行环境问题plus.android 是 5+ API,仅在 App 环境下可用。请确保代码运行在 App 平台(真机或模拟器),而不是 H5 或小程序平台。

  2. Android 版本兼容性NotificationChannel 是 Android 8.0(API 级别 26)引入的。如果设备系统版本低于此,可能无法导入。

  3. 权限或配置问题:确保在 manifest.json 中已配置必要的通知权限。

解决方案

  1. 检查运行平台
// 添加平台判断
if (uni.getSystemInfoSync().platform === 'android') {
    var NotificationChannel = plus.android.importClass('android.app.NotificationChannel');
    console.log(NotificationChannel);
}
  1. 添加 Android 版本检查
if (plus.os.name === 'Android' && parseInt(plus.os.version) >= 8) {
    var NotificationChannel = plus.android.importClass('android.app.NotificationChannel');
    console.log(NotificationChannel);
}
  1. 检查 manifest.json 配置: 确保已添加通知权限:
{
    "app-plus": {
        "distribute": {
            "android": {
                "permissions": [
                    "<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\"/>"
                ]
            }
        }
    }
}
  1. 使用 try-catch 捕获异常
try {
    var NotificationChannel = plus.android.importClass('android.app.NotificationChannel');
    console.log('导入成功:', NotificationChannel);
} catch (e) {
    console.error('导入失败:', e.message);
}
回到顶部