Giter Club home page Giter Club logo

jpush-flutter-plugin's Introduction

QQ Group

JPush Flutter Plugin

flutter 2.0 请切换至 dev-2.x 分支。

安装

在工程 pubspec.yaml 中加入 dependencies

  
//github  集成
dependencies:
  jpush_flutter:
    git:
      url: git://github.com/jpush/jpush-flutter-plugin.git
      ref: master
      
// pub 集成
dependencies:
  jpush_flutter: 2.1.4

配置

Android:

/android/app/build.gradle 中添加下列代码:

android: {
  ....
  defaultConfig {
    applicationId "替换成自己应用 ID"
    ...
    ndk {
	//选择要添加的对应 cpu 类型的 .so 库。
	abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'x86_64', 'mips', 'mips64', 'arm64-v8a',        
    }

    manifestPlaceholders = [
        JPUSH_PKGNAME : applicationId,
        JPUSH_APPKEY : "appkey", // NOTE: JPush 上注册的包名对应的 Appkey.
        JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
    ]
  }    
}
iOS:
  • 在 xcode8 之后需要点开推送选项: TARGETS -> Capabilities -> Push Notification 设为 on 状态

使用

import 'package:jpush_flutter/jpush_flutter.dart';

APIs

注意 : 需要先调用 JPush.setup 来初始化插件,才能保证其他功能正常工作。

参考

jpush-flutter-plugin's People

Contributors

caijinglong avatar huangminlinux avatar jiguang-official avatar lixiaohang000 avatar raoxudong avatar shikk avatar skill20 avatar yukirin000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jpush-flutter-plugin's Issues

点击推送的时候,出现错误 Key platform expected String but value was a java.lang.Byte. The default value <null> was returned.

在main.dart中使用了极光推送
main.dart中的代码

...
 //String debugLable = 'Unknown';
  final JPush jpush = new JPush();
  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String platformVersion;


    // Platform messages may fail, so we use a try/catch PlatformException.
    jpush.getRegistrationID().then((rid) {
      print("极光推送,此设备rID为:$rid");
      setState(() {
        //debugLable = "flutter getRegistrationID: $rid";
        print("极光推送,此设备rID为:$rid");
      });
    });

    jpush.setup(
      appKey: "fc3571b8c7bfa557bd078fc6",
      channel: "theChannel",
      production: false,
      debug: true,
    );
    jpush.applyPushAuthority(new NotificationSettingsIOS(
        sound: false,
        alert: false,
        badge: false));

    try {

      jpush.addEventHandler(
        // 接收通知回调方法。
        onReceiveNotification: (Map<String, dynamic> message) async {
           print("接受到极光推送通知 onReceiveNotification: $message");
          // setState(() {
          //     _platformVersion = "flutter onReceiveNotification: $message";
          //   });
        },
        // 点击通知回调方法。
        onOpenNotification: (Map<String, dynamic> message) async {
          print("极光推送点击回调 onOpenNotification: $message");
          NavigatorUtils.gotoWebViewPage(context, "http://www.baidu.com", "通知跳转测试");
          setState(() {
            //debugLable = "flutter onOpenNotification: $message";
          });
        },
        // 接收自定义消息回调方法。
        onReceiveMessage: (Map<String, dynamic> message) async {
          print("极光推送自定义消息推送 onReceiveMessage: $message");

        },
      );

    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
      print("PlatformException:"+ platformVersion);
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      //debugLable = platformVersion;
    });
  }



在发送测试消息的时候,点击接收到的消息,会出现以下的exception:
Key platform expected String but value was a java.lang.Byte. The default value was returned.

D/JIGUANG-JCore(10220): [PushReceiver] onReceive - cn.jpush.android.intent.NOTIFICATION_OPENED_PROXY.2d823e2a-c603-403f-b155-57b393e80f50
D/JIGUANG-JPush(10220): [PushReceiverCore] onReceive - cn.jpush.android.intent.NOTIFICATION_OPENED_PROXY.2d823e2a-c603-403f-b155-57b393e80f50
D/ViewRootImpl@725cd5f[MainActivity](10220): MSG_WINDOW_FOCUS_CHANGED 1
D/JIGUANG-JPush(10220): [PushReceiverCore] Send broadcast to app: com.example.dfelectricapp action=cn.jpush.android.intent.NOTIFICATION_OPENED
W/Bundle  (10220): Key platform expected String but value was a java.lang.Byte.  The default value <null> was returned.
W/Bundle  (10220): Attempt to cast generated internal exception:
W/Bundle  (10220): java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.String
W/Bundle  (10220): 	at android.os.BaseBundle.getString(BaseBundle.java:1089)
W/Bundle  (10220): 	at android.content.Intent.getStringExtra(Intent.java:7706)
W/Bundle  (10220): 	at com.jiguang.jpush.JPushPlugin$JPushReceiver.getNotificationExtras(JPushPlugin.java:300)
W/Bundle  (10220): 	at com.jiguang.jpush.JPushPlugin$JPushReceiver.handlingNotificationOpen(JPushPlugin.java:275)
W/Bundle  (10220): 	at com.jiguang.jpush.JPushPlugin$JPushReceiver.onReceive(JPushPlugin.java:262)
W/Bundle  (10220): 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:3392)
W/Bundle  (10220): 	at android.app.ActivityThread.-wrap18(Unknown Source:0)
W/Bundle  (10220): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1780)
W/Bundle  (10220): 	at android.os.Handler.dispatchMessage(Handler.java:105)
W/Bundle  (10220): 	at android.os.Looper.loop(Looper.java:164)
W/Bundle  (10220): 	at android.app.ActivityThread.main(ActivityThread.java:6944)
W/Bundle  (10220): 	at java.lang.reflect.Method.invoke(Native Method)
W/Bundle  (10220): 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
W/Bundle  (10220): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
D/JPushPlugin(10220): instance.dartIsReady is true
I/flutter (10220): 极光推送点击回调 onOpenNotification: {alert: 的发射点发, extras: {app: com.example.dfelectricapp, cn.jpush.android.ALERT_TYPE: 7, cn.jpush.android.NOTIFICATION_ID: 189334024, cn.jpush.android.MSG_ID: 3377710911, cn.jpush.android.NOTIFICATION_TYPE: 0, cn.jpush.android.ALERT: 的发射点发, platform: null, cn.jpush.android.EXTRA: {}, sdktype: JPUSH}, title: df_electric_app}
W/Activity(10220): AppLock checkAppLockState locked:false verifying:false pkgName = com.example.dfelectricapp isInMultiWindowMode:false showWhenLocked:false
I/System.out(10220): (HTTPLog)-Static: isSBSettingEnabled false
I/System.out(10220): (HTTPLog)-Static: isSBSettingEnabled false
D/JIGUANG-JCore(10220): [HttpHelper] status code:200 retry left:2

虽然报这个异常,但是正常的接收消息回调和点击消息回调是正常的,请问下这个错误是什么原因以及如何修正。
谢谢。
版本是:0.0.8
flutter doctor:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.11.7, on Microsoft Windows [Version 10.0.17134.472], locale zh-CN)
[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[√] Android Studio (version 3.2)
[√] Connected device (1 available)

• No issues found!

App在前台运行时希望能禁止通知栏消息

目前的情况:
无论是iOS还是安卓,无论App在前台还是后台,都会弹出通知栏消息。而开发者往往希望App在前台时禁用通知栏消息,仅当App在后台时弹出通知栏消息。

建议:
增加一个设置项,如: onlineNotificationType,定制App位于前台时的消息接收处理。当onlineNotificationType=0时,通知栏不再弹出App收到的消息。

iOS的建议:
可以在 ios/Classes/JPushPlugin.m 465行:
completionHandler(notificationTypes);
处添加判断。经修改,应可行。

Android:
不熟悉,不知道怎么弄。

点击通知回调,回调函数中如何跳转到指定的页面

代码如下,Navigator.push无法跳转,如何才能跳转呢

onOpenNotification: (Map<String, dynamic> message) async {
          print("flutter 点击通知: $message");
          Map<String, dynamic> extras = json.decode(message['extras']['cn.jpush.android.EXTRA']);
          print('extras $extras');
          if (extras['type'] == 'notice') { // 公告
            var id = extras['id']; // 公告id
            print("onOpenNotification 跳转到公告$id开始了");
            if (mounted) {
              Navigator.push(
                context,
                new MaterialPageRoute(builder: (context) => new NoticeDetail(noticeId: id)),
              );
            }
            print("onOpenNotification 跳转到公告$id完成了?");
          }
        }

设置别名的时候报错导致APP直接闪退

E/AndroidRuntime(11382): FATAL EXCEPTION: MessageReceiver
E/AndroidRuntime(11382): Process: com.djfy.zwapp, PID: 11382
E/AndroidRuntime(11382): java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: MessageReceiver
E/AndroidRuntime(11382): at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:605)
E/AndroidRuntime(11382): at io.flutter.embedding.engine.FlutterJNI.invokePlatformMessageResponseCallback(FlutterJNI.java:556)
E/AndroidRuntime(11382): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:129)
E/AndroidRuntime(11382): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:215)
E/AndroidRuntime(11382): at com.jiguang.jpush.JPushEventReceiver.onAliasOperatorResult(JPushEventReceiver.java:107)
E/AndroidRuntime(11382): at cn.jpush.android.a.b.run(Unknown Source:92)
E/AndroidRuntime(11382): at android.os.Handler.handleCallback(Handler.java:873)
E/AndroidRuntime(11382): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(11382): at android.os.Looper.loop(Looper.java:201)
E/AndroidRuntime(11382): at android.os.HandlerThread.run(HandlerThread.java:65)
E/MQSEventManagerDelegate(11382): failed to get MQSService.
W/com.djfy.zwapp(11382): Accessing hidden method Landroid/telephony/TelephonyManager;->getSimCount()I (light greylist, reflection)
W/com.djfy.zwapp(11382): Accessing hidden method Landroid/telephony/TelephonyManager;->getSimSerialNumber(I)Ljava/lang/String; (light greylist, reflection)
W/com.djfy.zwapp(11382): Accessing hidden method Landroid/telephony/TelephonyManager;->getSubscriberId(I)Ljava/lang/String; (light greylist, reflection)
W/com.djfy.zwapp(11382): Accessing hidden method Landroid/telephony/SubscriptionManager;->getSubId(I)[I (light greylist, reflection)
D/NetworkSecurityConfig(11382): No Network Security Config specified, using platform default
D/JIGUANG-JCore(11382): [HttpHelper] status code:200 retry left:2
I/Process (11382): Sending signal. PID: 11382 SIG: 9
Lost connection to device.

couldn't find "libflutter.so" 怎么破?

编译出现:


  java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.turing-AdTojVmR3y7ZMCxsHOc5hA==/base.apk"],nativeLibraryDirectories=[/data/app/com.turing-AdTojVmR3y7ZMCxsHOc5hA==/lib/arm, /data/app/com.turing-AdTojVmR3y7ZMCxsHOc5hA==/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]] couldn't find "libflutter.so"
        at java.lang.Runtime.loadLibrary0(Runtime.java:1011)
        at java.lang.System.loadLibrary(System.java:1657)
        at io.flutter.view.FlutterMain.startInitialization(FlutterMain.java:163)
        at io.flutter.view.FlutterMain.startInitialization(FlutterMain.java:140)
        at io.flutter.app.FlutterApplication.onCreate(FlutterApplication.java:22)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1118)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5791)
        at android.app.ActivityThread.-wrap1(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

能否动态设置 appKey 呢?

能否动态设置 appKey 呢?我看 setup 方法有 appKey 参数,能否像下面这样呢:

JPush jpush = new JPush();
jpush.setup(
      appKey: "每次启动时动态设置 appKey 字段",
      channel: "theChannel",
      production: false,
      debug: false, // 设置是否打印 debug 日志
);

setBadge 设置出错

错误信息:MissingPluginException(No implementation found for method setBadge onchannel jpush)

安卓模拟器报错

Resolving dependencies...

  • Error running Gradle:
    ProcessException: Process "/Users/chenyinxin/Desktop/mowork/android/gradlew" exited abnormally:

Configure project :app
WARNING: API 'variant.getMergeAssets()' is obsolete and has been replaced with 'variant.getMergeAssetsProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variant.getMergeAssets(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
WARNING: API 'variantOutput.getProcessResources()' is obsolete and has been replaced with 'variantOutput.getProcessResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variantOutput.getProcessResources(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.

Configure project :jpush_flutter
*********************************************************
WARNING: This version of image_picker will break your Android build if it or its dependencies aren't compatible with AndroidX.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
This warning prints for all Android build failures. The real root cause of the error may be unrelated.
*********************************************************

Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.

FAILURE: Build failed with an exception.

  • What went wrong:
    A problem occurred configuring project ':jpush_flutter'.

Could not resolve all artifacts for configuration ':jpush_flutter:classpath'.
Could not download kotlin-stdlib.jar (org.jetbrains.kotlin:kotlin-stdlib:1.2.0)
> Could not get resource 'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0.jar'.
> Could not GET 'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0.jar'.
> Remote host closed connection during handshake

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 1s
Command: /Users/chenyinxin/Desktop/mowork/android/gradlew app:properties

Please review your Gradle project setup in the android/ folder.

无法跳转

当在 splash 欢迎页 跳转到主页时使用Navigator.of(context).pushReplacement('/HomePage')时,当点击接收到的通知时无法跳转到指定页,

只有当 splash 欢迎页 跳转到主页使用
Navigator.of(context).pushNamed('/HomePage')时,点击接收到的通知才会跳转到指定页

但是在 splash 欢迎页 跳转到主页时需要使用 pushReplacement 实现无历史路由,如何使用pushReplacement才可能实现跳转??

iOS端一直刷这个信息,无法推送(部分私密信息用 「 * 」表示)

**iOS 端一直接报这个错误,无法得到 advertisingIdentifier **

----- register info ----- Appkey: 17fd99f*****1138****d token:245a******05a246cfa7c01*****a7fb01ee128347a4****698fc27fb71a7 advertisingIdentifier: 2019-07-23 22:28:00.644103+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGRegistration] Register info - strKey:iPhone0d0f050e0705040709$$ $$com.qipai.qipaismart$$17fd99f0452a113878d2a6ed clientInfo:12.4$$iPhone11,6$$ $$ $$developer-default$$3.1.2| | |1.2.6| | , deviceToken:245a8cca05a246cfa7c01bc9099da7fb01ee128347a49acfbcd698fc27fb71a7, aps-Environment:1, configApsEnvironment:1 advertisingIdentifier: 2019-07-23 22:28:00.777034+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGTcpSocket] tcp connection closed by remote 2019-07-23 22:28:00.777398+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGTcpSocket] 关闭TCP连接 2019-07-23 22:28:00.777784+0800 Runner[464:40468] | JIGUANG | W - [JIGUANGSessionController] 连接被关闭 2019-07-23 22:28:00.778106+0800 Runner[464:40468] | JIGUANG | W - [JIGUANGSessionController] connect close by remote 2019-07-23 22:28:00.778385+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGUtilities] JCOREPostNotificationWithUserInfo name: kJPUSHNetworkDidCloseNotification (null) 2019-07-23 22:28:00.778581+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGSessionController] Action - reenqueueSendingRequests 2019-07-23 22:28:00.778848+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGSessionController] Action - startReachableDelaySetupTimer 2019-07-23 22:28:00.779041+0800 Runner[464:40468] | JIGUANG | D - [JIGUANGSessionController] session will setup delayed with time interval: 2.000000

代码如下:

`
// Platform messages are asynchronous, so we initialize in an async method.
Future initJPush() async {
String platformVersion;

// Platform messages may fail, so we use a try/catch PlatformException.
jpush.getRegistrationID().then((rid) {
  print('debugLable-->' + 'flutter getRegistrationID: $rid');

  setState(() {
    debugLable = "flutter getRegistrationID: $rid";
  });
});

try {
  jpush.addEventHandler(
    // 接收通知回调方法。
    onReceiveNotification: (Map<String, dynamic> message) async {
      print("flutter onReceiveNotification: $message");
      setState(() {
        debugLable = "flutter onReceiveNotification: $message";
      });
    },
    // 点击通知回调方法。
    onOpenNotification: (Map<String, dynamic> message) async {
      print("flutter onOpenNotification: $message");
      setState(() {
        debugLable = "flutter onOpenNotification: $message";
      });
    },
    // 接收自定义消息回调方法。
    onReceiveMessage: (Map<String, dynamic> message) async {
      print("flutter onReceiveMessage: $message");
      setState(() {
        debugLable = "flutter onReceiveMessage: $message";
      });
    },
  );
} on PlatformException {
  platformVersion = 'Failed to get platform version.';
}

jpush.setup(
  appKey: "17fd99f*****1138****d",
  channel: "developer-default",
  production: false,
  debug: true, // 设置是否打印 debug 日志
);

jpush.applyPushAuthority(
  new NotificationSettingsIOS(
    sound: true,
    alert: true,
    badge: true,
  ),
);

// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;

setState(() {
  debugLable = platformVersion;
});

}
`

swift工程不兼容

[!] The 'Pods-Runner' target has transitive dependencies that include static binaries: (/Users/cai/IdeaProjects/flutter/sxw_app/ios/Pods/JPush/libjpush-ios-3.1.0.a)

因为我项目不是新项目,其中会有对swift库的引用,所以我的podspec中需要加入 use_frameworks! 以保证我可以使用swift的库

那么,我应该如何使用这个插件呢

IOS接收不到别名/RID推送

配置正常,能收到广播推送。但是设置别名或者RegistrationID的方式推送不行。
打印的日志也看不出来什么。

广播能正常推送,意味着证书是不是正常的。
能拿到RegistrationID,意味着配置应该是正常的。
applyPushAuthority我也申请了。

但是就是收不到 别名或者RegistrationID的方式推送。

有谁遇到过吗?怎么解决的

]

]

api文档有错误

文档中
cleanTags
jpush.setTags().then((map) {});
实际应该是
jpush.cleanTags().then((map) {});//清空所有 tags

flutter 打包安卓时提示,要怎么解决?

注: /Applications/flutter/.pub-cache/hosted/pub.flutter-io.cn/jpush_flutter-0.0.9/android/src/main/java/com/jiguang/jpush/JPushPlugin.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

run in flutter v1.7.8-hotfix.3 will be crashed

when upgrade flutter to 1.7.8-hotfix.3,run app in debug mode,it will be crash in few seconds.
the log is:

10468-10606/com.example.example E/AndroidRuntime: FATAL EXCEPTION: MessageReceiver
    Process: com.example.fireiotmobile, PID: 10468
    java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: MessageReceiver
        at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:794)
        at io.flutter.embedding.engine.FlutterJNI.invokePlatformMessageResponseCallback(FlutterJNI.java:727)
        at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:140)
        at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:230)
        at com.jiguang.jpush.JPushEventReceiver.onAliasOperatorResult(JPushEventReceiver.java:110)
        at cn.jpush.android.a.b.run(Unknown Source:92)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.os.HandlerThread.run(HandlerThread.java:65)

0.0.13编译报错

报错如下:

Execution failed for task ':jpush_flutter:verifyReleaseResources'.

java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
D:\git-work\nb_smoke\build\jpush_flutter\intermediates\res\merged\release\values-v28\values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
D:\git-work\nb_smoke\build\jpush_flutter\intermediates\res\merged\release\values-v28\values-v28.xml:11: error: resource android:attr/dialogCornerRadius not found.
D:\git-work\nb_smoke\build\jpush_flutter\intermediates\res\merged\release\values\values.xml:2615: error: resource android:attr/fontVariationSettings not found.
D:\git-work\nb_smoke\build\jpush_flutter\intermediates\res\merged\release\values\values.xml:2616: error: resource android:attr/ttcIndex not found.
error: failed linking references.

ios有一个坑..

自定义消息如果要弹出的话,必须给定 subtitle 不然报错..

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.