Comments (2)
@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).
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.
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)
- flutter run --debug --verbose运行不成功
- 不同dert文件中不同类里面,相同名称的方法注入有错乱 HOT 2
- 嵌套Execute注入的时候在release打包时候会报错
- Aspectd如何给所有方法进行函数插桩
- 最新版本的库作为第三方库是否需要global activate? HOT 1
- Target kernel_snapshot failed: FileSystemException: Cannot open file, path = '/Users/liuxin/aspectd/aspectd_impl/.packages' HOT 1
- Where can I find the lastest version of aspectd ?? HOT 4
- 1.22.2 版本demo运行报错 HOT 1
- flutter version 2.2.3, dart version 2.13.4, 请问aspectd应该使用哪个版本。
- 自建工程没有成功,跑的master2.2.3的最新demo可以成功 HOT 1
- 啥时候适配 2.5.0 HOT 5
- 为啥2.2.3版本里面frontend_server/frontend_server.dart编译器会报红找不到该引用
- AspectD 非官方交流群 HOT 2
- 什么时候考虑升级支持2.5吗 HOT 8
- 我适配了2.5.4,大大简化了注入逻辑 HOT 7
- 有没有计划开源PowerScrollView HOT 2
- Beike_AspectD is now compatible with Flutter 2.5.3.
- Crash when compiling package:aspectd_impl/aspectd_impl.dart
- Inject hook GestureDetector无效
- xcode build fail
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aspectd.