Useless Error Message #516
When your IDE gives you an error message that means nothing at all
After programming for a while in Flutter, I returned to an old Android app to add some features and fix a bug. It’s always confusing to switch between languages — is it semicolon, colon, tabs or parentheses? What’s the syntax for
In this case, I wrote the following line in Android Studio:
Uri uri = new Uri.fromFile(file);
And despite the fact that autocomplete easily found
fromFile for me, it was colored in red and the enlightening error message was
could not resolve symbol 'fromFile'.
What I am supposed to do with that? Uri clearly has a static fromFile function. Googling for “could not resolve symbol” is useless as it is a general error.
So… what do I do now?
In the end I found an obscure site with the answer: Changing languages is confusing :)
In Flutter, there is no need for the
new keyword. You just call the constructor, or the helper function:
TextButton button = TextButton(child:Text("Hi!");
TextButton button = TextButton.icon(icon:icon,label:Text("Hi!"));
In Java, however, the
new keyword is important, but only when calling the constructor, not the helper function:
Uri uri = new Uri();//This constructor doesn't actually exist
Uri uri = Uri.fromFile(file);
In other words, all I needed to do was remove the
new keyword and everything was fine. So the error message should have been
Uri.fromFile is not a constructor or
new keyword is redundant or even
could not find constructor instead of the completely useless error message that was given.
What useless error messages have you encountered? Write in the comments and let me know :)