-
Notifications
You must be signed in to change notification settings - Fork 187
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
[protoc_plugin] Error The method '$_clearField' isn't defined for the class 'DartMixin'.
#922
Comments
protoc_plugin in b761358 can only be compiled with the protobuf in the same commit (or later). Since we don't override the protobuf dependency to Things to fix:
Note that after the second step above your project may fail to compile unless you also use the protobuf library from the git repo with the same rev as the protoc_plugin. |
By the way, it works on master. Is there an ETA for 4.0.0, so I don't have to use a local repository? |
@mraleph Hi, I try to update package:protoc_plugin to v22.0.0 but failed, maybe the protobuf should update to 4.0.0 in dependencies? cruvie@192 kk_go_kit % dart pub global activate protobuf 4.0.0
Package protobuf is currently active at version 4.0.0.
Downloading packages... .
The package protobuf is already activated at newest available version.
To recompile executables, first run `dart pub global deactivate protobuf`.
Activated protobuf 4.0.0.
cruvie@192 kk_go_kit % dart pub global activate protoc_plugin 22.0.0
Downloading packages... .
+ collection 1.19.1
+ fixnum 1.1.1
+ meta 1.16.0
+ path 1.9.1
+ protobuf 3.1.0 (4.0.0 available)
+ protoc_plugin 22.0.0
Building package executables...
Failed to build protoc_plugin:protoc_plugin_bazel:
../../../../.pub-cache/hosted/pub.flutter-io.cn/protoc_plugin-22.0.0/lib/src/generated/dart_options.pb.dart:85:23: Error: The method '$_clearField' isn't defined for the class 'DartMixin'.
- 'DartMixin' is from 'package:protoc_plugin/src/generated/dart_options.pb.dart' ('../../../../.pub-cache/hosted/pub.flutter-io.cn/protoc_plugin-22.0.0/lib/src/generated/dart_options.pb.dart').
Try correcting the name to the name of an existing method, or defining a method named '$_clearField'.
|
@cruvie should be fixed now. Thanks for pointing it out. |
@mraleph Thank you very much! 🙏 I can confirm that |
I think we can close this issue then. |
I still see the issue with _clearField, _setField being undefined with 22..0.1, had to rollback to 21.1.2. |
@MuthannaVenki you have to use protobuf 4.0.0 with protoc_plugin 22.0.1. Instead of rolling back protoc_plugin update protobuf to 4.0.0. |
I'm here with protobuf 4.0.0 and protoc_plugin 22.0.1 and grpc 4.0.2, but I'm facing the compatibility issue:
Do you know how to solve this? |
@gabrielcarreiraribeiro grpc isn't updated yet to work with protobuf 4.0.0, see grpc/grpc-dart#768. |
So do I need to use protoc 3.1.0? But using this, I'll still facing the '$_clearField' issues. |
You need to use protobuf 3 with protoc_plugin 21. Update to protobuf 4, protoc_plugin 22, and the next version of grpc together once grpc is ready. |
Yes this is what I did: But when I run: protoc --dart_out=grpc:lib/grpc -Iprotobuf protobuf/proto.proto --experimental_allow_proto3_optional My proto.pb.dart file is with many errors example: |
I think the command you show should use global protoc_plugin, not the one you have in your pubspec. Make sure you downgraded |
Perfect, solved. My global protoc_plugin version was on 22, like you mentioned. I executed: dart pub global activate protoc_plugin 21.1.2 And now worked fine. Thanks, mate. |
dart pub global activate -sgit https://github.com/google/protobuf.dart.git --git-path protoc_plugin/
gives me the following error:
ref is b761358
dart pub global activate -sgit https://github.com/google/protobuf.dart.git --git-path protoc_plugin --git-ref 1822b81df565f7b7d54450b33fa2c997f69a9995
works as expected, so the problem is somewhere in b761358Am I missing something or is this a newly introduced problem?
The text was updated successfully, but these errors were encountered: