Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

After upgrade to Android embedding V2, still get Shared.activity is null / NullPointerException on android.content.Context.getResources() #390

Closed
jamesncl opened this issue Jun 10, 2020 · 19 comments

Comments

@jamesncl
Copy link

After upgrading to flutter embedding v2 I still get the following error occasionally:

E/IAWFlutterWebView(21166): 
E/IAWFlutterWebView(21166): 
E/IAWFlutterWebView(21166): 
E/IAWFlutterWebView(21166): ERROR: Shared.activity is null!!!
E/IAWFlutterWebView(21166): 
E/IAWFlutterWebView(21166): You need to upgrade your Flutter project to use the new Java Embedding API:
E/IAWFlutterWebView(21166): 
E/IAWFlutterWebView(21166): - Take a look at the "IMPORTANT Note for Android" section here: https://github.com/pichillilorenzo/flutter_inappwebview#important-note-for-android
E/IAWFlutterWebView(21166): - See the official wiki here: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
E/IAWFlutterWebView(21166): 
E/IAWFlutterWebView(21166): 
E/MethodChannel#flutter/platform_views(21166): Failed to handle method call
E/MethodChannel#flutter/platform_views(21166): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
E/MethodChannel#flutter/platform_views(21166): 	at android.view.ViewConfiguration.get(ViewConfiguration.java:481)
E/MethodChannel#flutter/platform_views(21166): 	at android.view.View.<init>(View.java:5178)
E/MethodChannel#flutter/platform_views(21166): 	at android.view.View.<init>(View.java:5320)
E/MethodChannel#flutter/platform_views(21166): 	at android.view.ViewGroup.<init>(ViewGroup.java:675)
E/MethodChannel#flutter/platform_views(21166): 	at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:56)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:410)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:353)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:336)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:323)
E/MethodChannel#flutter/platform_views(21166): 	at android.webkit.WebView.<init>(WebView.java:313)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.InputAwareWebView.<init>(InputAwareWebView.java:28)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.InAppWebView.<init>(InAppWebView.java:612)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.FlutterWebView.<init>(FlutterWebView.java:68)
E/MethodChannel#flutter/platform_views(21166): 	at com.pichillilorenzo.flutter_inappwebview.InAppWebView.FlutterWebViewFactory.create(FlutterWebViewFactory.java:28)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.SingleViewPresentation.onCreate(SingleViewPresentation.java:179)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.Dialog.dispatchOnCreate(Dialog.java:421)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.Dialog.show(Dialog.java:315)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.Presentation.show(Presentation.java:250)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.VirtualDisplayController.<init>(VirtualDisplayController.java:94)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.VirtualDisplayController.create(VirtualDisplayController.java:47)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(PlatformViewsController.java:112)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:95)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:59)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:226)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
E/MethodChannel#flutter/platform_views(21166): 	at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:631)
E/MethodChannel#flutter/platform_views(21166): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#flutter/platform_views(21166): 	at android.os.MessageQueue.next(MessageQueue.java:336)
E/MethodChannel#flutter/platform_views(21166): 	at android.os.Looper.loop(Looper.java:174)
E/MethodChannel#flutter/platform_views(21166): 	at android.app.ActivityThread.main(ActivityThread.java:7356)
E/MethodChannel#flutter/platform_views(21166): 	at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#flutter/platform_views(21166): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
E/MethodChannel#flutter/platform_views(21166): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

Here is my Manifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.chronic_insights_flutter">

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

    <application
        android:label="My App"
        android:icon="@mipmap/launcher_icon">

        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">

            <!-- Specify that the launch screen should continue being displayed until Flutter renders its first frame. -->
            <meta-data
                android:name="io.flutter.embedding.android.SplashScreenDrawable"
                android:resource="@drawable/launch_background" />
            <!-- Theme to apply as soon as Flutter begins rendering frames -->
            <meta-data
                android:name="io.flutter.embedding.android.NormalTheme"
                android:resource="@style/NormalTheme"
                />

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

       
        <!-- This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />

    </application>
</manifest>

Here is my MainActivity (note I'm using the new embedding classes):

package com.my_app

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {

}

I'm also doing this in my flutter main.dart:

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(new MyApp());
}

I've also done a flutter clean. I'm aware that this has been reported in earlier issues, and the solution was to upgrade to embedding V2 - but as far as I can tell I've done that - I've followed all the steps from here. What am I missing?

Thanks

@pichillilorenzo
Copy link
Owner

It should be ok. If you try to create a new Fresh flutter app and you use the simple code example that you can find on the README.md, does it work??
If it works, then there is some configuration missing on your App.
In that case, you can simply move your App code inside the newly created app.

@addtek
Copy link

addtek commented Jun 19, 2020

I'm facing the same issue, please any update or fix?
I tried what @pichillilorenzo suggested but still got same erro

@pichillilorenzo
Copy link
Owner

pichillilorenzo commented Jun 19, 2020

There is no fix, it should already just work. Any example I run is just fine!
Can you give me more info? Android Version, flutter version, etc.??

@pichillilorenzo
Copy link
Owner

@addtek Also, could you share the complete example project you created? If you can, make a zip file with all the project files and share it. In this way, I can test if there is something missing. Thanks.

@jamesncl you too if you can, Thanks!

@jamesncl
Copy link
Author

jamesncl commented Jun 20, 2020

@pichillilorenzo Thanks for the reply. This error occurred again today, so I've spent all morning trying to reproduce and identify the problem. Unfortunately, as I said in the original post, this only happens occasionally (maybe once every couple of days), which makes tracking down the problem very difficult. (Edit: it literally just happened again, immediately after I deployed the exact same app and it worked fine).

The fact that it only happens occasionally makes me think there is some kind of timing issue or race condition going on. I'd be interested to hear if @addtek gets this error every time or only occasionally.

For what it's worth, here's a link to a minimal example I've created with the exact configuration for android that I'm using in my app (manifest, build.gradle etc). So far I've been unable to reproduce the error using it :( I'll continue to watch out for this error and try to figure out the exact steps required to reproduce.

Some more info:

  • I'm not using flutter_inappwebview directly, I'm using the youtube_player_flutter plugin which uses inappwebview under the hood

  • flutter doctor:

Flutter (Channel stable, v1.17.3, on Microsoft Windows [Version 10.0.19041.329], locale en-GB)
    • Flutter version 1.17.3 at D:\flutter
    • Framework revision b041144f83 (2 weeks ago), 2020-06-04 09:26:11 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\james\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
    • All Android licenses accepted.

[√] Android Studio (version 3.6)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.8052
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)

@pichillilorenzo
Copy link
Owner

pichillilorenzo commented Jun 20, 2020

I see that you don't call WidgetsFlutterBinding.ensureInitialized() before you are running your application.
As stated in the README.md file of my plugin, almost at the top of it (IMPORTANT Note for Android and iOS), you need to call it before runApp:

void main() {
 // it should be the first line in main method
 WidgetsFlutterBinding.ensureInitialized();

 // rest of your app code
 runApp(MyApp());
}

Now it should work.

Official wiki https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html

@pichillilorenzo
Copy link
Owner

Let me know if it works! If it does, then I will add this into my error message.

@addtek
Copy link

addtek commented Jun 20, 2020

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and rebuild the app i don't get the error. so i try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that flutter_inappwebview needs to work properly.

@jamesncl
Copy link
Author

I see that you don't call WidgetsFlutterBinding.ensureInitialized() before you are running your application.
As stated in the README.md file of my plugin, almost at the top of it (IMPORTANT Note for Android and iOS), you need to call it before runApp:

void main() {
 // it should be the first line in main method
 WidgetsFlutterBinding.ensureInitialized();

 // rest of your app code
 runApp(MyApp());
}

Now it should work.

Official wiki https://api.flutter.dev/flutter/widgets/WidgetsFlutterBinding/ensureInitialized.html

Apologies, that line WidgetsFlutterBinding.ensureInitialized() IS in the app that is experiencing the error. I failed to copy that over to the minimal example I created. I've updated the shared file to reflect that. So, unfortunately, this isn't the solution :(

@jamesncl
Copy link
Author

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and rebuild the app i don't get the error. so i try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that flutter_inappwebview needs to work properly.

@addtek Aha! I am also using alarm manager to do background tasks (downloading the latest list of YouTube video IDs). I'm using the workmanager plugin, which uses Android's WorkManager under the hood.

@addtek out of interest, when were you initialising Android WorkManager in your app? Do you do this before runApp() ? I initialise the workmanager plugin a bit after, while loading some background data. I'm trying to understand why it crashes for you every time but only happens to me sometimes.

I'm going to remove the workmanager plugin and see if I get this error again.

@addtek
Copy link

addtek commented Jun 20, 2020

@jamesncl i get the error everytime i run my app.
and I'm not using flutter_inappwebview directly and i use youtube_player_flutter too..
i have realized that the error occurs when i run some background task with android_alarm_manager and try to play a video from YouTube using the youtube_player_flutter plugin, but when i stop running the background task and rebuild the app i don't get the error. so i try run the background task with a different plugin(flutter_workmanager) and got the error again. So i have concluded that the probably the background process might be holding some resources that flutter_inappwebview needs to work properly.

@addtek Aha! I am also using alarm manager to do background tasks (downloading the latest list of YouTube video IDs). I'm using the workmanager plugin, which uses Android's WorkManager under the hood.

@addtek out of interest, when were you initialising Android WorkManager in your app? Do you do this before runApp() ? I initialise the workmanager plugin a bit after, while loading some background data. I'm trying to understand why it crashes for you every time but only happens to me sometimes.

I'm going to remove the workmanager plugin and see if I get this error again.

I initalise the Workmanager after in the main app view after a user is authenticated, so that's pretty way after 'runApp()'. actually i don't get the error right away when the app runs but when i try to play a video.

@jamesncl
Copy link
Author

jamesncl commented Jun 20, 2020

Right, thanks to @addtek hint about AlarmManager, I now have a minimal reproducible example :) It seems to be a conflict with Android's AlarmManager.

Here's how to reproduce:

  1. Create a new Flutter application, using the latest version of Android Studio (so that you get a new default project with the Android embedding v2 stuff)
  2. Replace pubspec.yaml with:
name: youtubeplayerbug
description: A new Flutter application.

version: 1.0.0+1

environment:
  sdk: ">=2.7.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  youtube_player_flutter: ^7.0.0
  workmanager: ^0.2.0

dev_dependencies:
  flutter_test:
    sdk: flutter


flutter:
  uses-material-design: true

Replace main.dart with this:

import 'package:flutter/material.dart';
import 'package:workmanager/workmanager.dart';
import 'package:youtube_player_flutter/youtube_player_flutter.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  Workmanager.initialize(
    callbackDispatcher,
    isInDebugMode: true,
  );
  Workmanager.registerOneOffTask("1", "simpleTask");

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {

  YoutubePlayerController _controller;

  @override
  void initState() {
    super.initState();
    _controller =  YoutubePlayerController(
      initialVideoId: "WRiI65WugkE",
      flags: YoutubePlayerFlags(
        autoPlay: false,
        mute: false,
      ),
    );
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: YoutubePlayerBuilder(
          player: YoutubePlayer(
            controller: _controller,
            showVideoProgressIndicator: true,
          ),
          builder: (BuildContext context, Widget player) {
            return player;
          },
        ),
      ),
    );
  }
}


void callbackDispatcher() {
  Workmanager.executeTask((task, inputData) {
    print("Native called background task"); //simpleTask will be emitted here.
    return Future.value(true);
  });
}

Amend build.gradle in android/app/src/ and set minSdkVersion to 20:

defaultConfig {
        applicationId "com.example.youtubeplayerbug"
        minSdkVersion 20
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

Build and run. It will immediately crash with this error:

E/flutter (25293): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference, null)
E/flutter (25293): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter (25293): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:18)
E/flutter (25293): <asynchronous suspension>
E/flutter (25293): #2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)
E/flutter (25293): #3      AndroidViewController._create (package:flutter/src/services/platform_views.dart:633:54)
E/flutter (25293): #4      AndroidViewController.setSize (package:flutter/src/services/platform_views.dart:550:14)
E/flutter (25293): #5      RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:175:29)
E/flutter (25293): #6      RenderAndroidView.performResize (package:flutter/src/rendering/platform_view.dart:156:5)
E/flutter (25293): #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1746:9)
E/flutter (25293): #8      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #9      RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #10     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #12     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #14     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:556:15)
E/flutter (25293): #15     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #16     RenderAspectRatio.performLayout (package:flutter/src/rendering/proxy_box.dart:526:13)
E/flutter (25293): #17     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #18     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #20     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:266:13)
E/flutter (25293): #21     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #22     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #25     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
E/flutter (25293): #26     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #27     _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:246:13)
E/flutter (25293): #28     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #29     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:207:11)
E/flutter (25293): #30     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #31     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
E/flutter (25293): #32     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
E/flutter (25293): #33     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
E/flutter (25293): #34     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
E/flutter (25293): #35     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #36     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #37     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #38     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #39     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
E/flutter (25293): #40     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter (25293): #41     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter (25293): #4

If you comment out the Youtube controller and player, and replace with an empty Container, there is no crash.

@jamesncl
Copy link
Author

jamesncl commented Jun 20, 2020

I initalise the Workmanager after in the main app view after a user is authenticated, so that's pretty way after 'runApp()'. actually i don't get the error right away when the app runs but when i try to play a video.

Yep I also only get the error when I have a youtube player widget on the screen.

@pichillilorenzo
Copy link
Owner

Thanks! I will try to debug it. I will let you know as soon as possible

@pichillilorenzo
Copy link
Owner

I found that there is a problem with the Workmanager.registerOneOffTask method.
For example, if you delay that call to 3 seconds later, or somehow after the InAppWebView (or your youtube plugin widget) is added to the widget tree, it seems to work:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Workmanager.initialize(
    callbackDispatcher,
    isInDebugMode: true,
  );
  Future.delayed(const Duration(milliseconds: 3000), () {
    Workmanager.registerOneOffTask("1", "simpleTask");
  });

  runApp(MyApp());
}

@pichillilorenzo
Copy link
Owner

Ok, I fixed it! I don't know why, but calling Workmanager.registerOneOffTask causes timing issue to my plugin and, somehow, delays and invert the order the calls of 2 Flutter android native API: FlutterPlugin.onAttachedToEngine event and ActivityAware.onAttachedToActivity event.

Because of this, a variable of mine gets null and shows the error you see.

This fix will be available in the next release 3.4.0.

@addtek
Copy link

addtek commented Jun 20, 2020

Super cool thank you @pichillilorenzo

@jamesncl
Copy link
Author

Nice! Thanks @pichillilorenzo for responding so quickly. Looking forward to 3.4.0 :)

@pichillilorenzo
Copy link
Owner

Published new 3.4.0 version!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants