Giter Club home page Giter Club logo

Comments (2)

kangwang1988 avatar kangwang1988 commented on August 12, 2024

@Kila2
Using latest flutter(master) and aspectd(master),

kylewong@KyleWongdeMacBook-Pro vm % flutter doctor -v
[✓] Flutter (Channel master, v1.10.14-pre.12, on Mac OS X 10.15 19A582a, locale en-CN)
    • Flutter version 1.10.14-pre.12 at /Users/kylewong/Codes/Flutter/alibaba-flutter/flutter
    • Framework revision cdc2d9901d (8 hours ago), 2019-10-07 16:43:04 -0700
    • Engine revision 1d62160fdb
    • Dart version 2.6.0 (build 2.6.0-dev.1.0 d6c6d12ebf)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/kylewong/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

[!] Xcode - develop for iOS and macOS (Xcode 11.2)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • Xcode 11.2, Build version 11B41
    ! Unknown CocoaPods version installed.
        Flutter is unable to determine the installed CocoaPods's version.
        Ensure that the output of 'pod --version' contains only digits and . to be recognized by Flutter.
      To upgrade:
        sudo gem install cocoapods

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.3
    • Dart plugin version 191.8423
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.37.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.3.0

[✓] Connected device (2 available)
    • MHA AL00       • xxx                         • android-arm64 • Android 9 (API 28)
    • “L”的 iPhone • xxx • ios           • iOS 12.4.1

I wrote a aspectd_impl package under flutter_gallery with codes below:
flutter_gallery/aspectd_impl/lib/aspectd_impl.dart

import 'package:flutter_gallery/main.dart' as app;
import 'aop_impl.dart';

void main()=> app.main();

flutter_gallery/aspectd_impl/lib/aop_impl.dart

import 'package:aspectd/aspectd.dart';
import 'package:flutter/material.dart';

@Aspect()
@pragma("vm:entry-point")
class ExecuteDemo {
  @pragma("vm:entry-point")
  ExecuteDemo();

  @Execute("package:flutter/src/gestures/recognizer.dart", "GestureRecognizer",
      "-invokeCallback")
  @pragma("vm:entry-point")
  dynamic hookInvokeCallback(PointCut pointcut) {
    print('[KWLM]1:Called!');
    return pointcut.proceed();
  }

  @Execute("package:flutter/src/material/ink_well.dart", "_InkResponseState",
      "-_handleTap")
  @pragma("vm:entry-point")
  Widget hook_handleTap(PointCut pointcut) {
    print('[KWLM]2:Called!');
    Widget res = pointcut.proceed();
    return res;
  }

  @Execute("package:flutter/src/widgets/routes.dart", "RouteObserver",
      "-didPush")
  @pragma("vm:entry-point")
  void hookDidPush(PointCut pointcut) {
    print('[KWLM]3:Called!');
    pointcut.proceed();
  }

  @Execute(
      "package:flutter/src/widgets/routes.dart", "RouteObserver", "-didPop")
  @pragma("vm:entry-point")
//pop
  void hookDidPop(PointCut pointcut) {
    print('[KWLM]4:Called!');
    pointcut.proceed();
  }
}

It works fine in both ios/android(debug/release mode).

Screen Shot 2019-10-08 at 3 29 53 PM

I'm closing this issue now, if you can reproduce it using latest flutter/aspectd(master), feel free to comment and i will reopen it.

from aspectd.

kangwang1988 avatar kangwang1988 commented on August 12, 2024

Update:
After an offline communication, this issue is finally resolved by adding a default constructor.
I also update the README in 84dc3ff

from aspectd.

Related Issues (20)

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.