在Flutter中构建Android应用时出现了“error: cannot find symbol”错误。

17

在我的Flutter应用中构建Android时,我不断收到这个错误。当我添加firebase messaging version 7.0.3后,所有这些都发生了。即使将其移除,我仍然遇到此问题。

/Users/bright/Desktop/flutter_apps/rush_user_app/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:20: error: cannot find symbol
    flutterEngine.getPlugins().add(new io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin());
                                                                                          ^
  symbol:   class FlutterAndroidLifecyclePlugin                         
  location: package io.flutter.plugins.flutter_plugin_android_lifecycle 
/Users/bright/Desktop/flutter_apps/rush_user_app/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:24: error: cannot find symbol
    flutterEngine.getPlugins().add(new io.flutter.plugins.googlemaps.GoogleMapsPlugin());
                                                                    ^   
  symbol:   class GoogleMapsPlugin                                      
  location: package io.flutter.plugins.googlemaps                       
/Users/bright/Desktop/flutter_apps/rush_user_app/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:25: error: cannot find symbol
    flutterEngine.getPlugins().add(new io.flutter.plugins.googlesignin.GoogleSignInPlugin());
                                                                      ^ 
  symbol:   class GoogleSignInPlugin                                    
  location: package io.flutter.plugins.googlesignin                     
/Users/bright/Desktop/flutter_apps/rush_user_app/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:26: error: cannot find symbol
    flutterEngine.getPlugins().add(new io.flutter.plugins.imagepicker.ImagePickerPlugin());
                                                                     ^  
  symbol:   class ImagePickerPlugin                                     
  location: package io.flutter.plugins.imagepicker                      
/Users/bright/Desktop/flutter_apps/rush_user_app/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java:30: error: cannot find symbol
    flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin());
                                                                           ^
  symbol:   class SharedPreferencesPlugin                               
  location: package io.flutter.plugins.sharedpreferences                
5 errors  
Running Gradle task 'assembleDebug'... Done                       102.9s
Exception: Gradle task assembleDebug failed with exit code 1

这是我的GeneratedPluginRegistrant.java文件。

package io.flutter.plugins;

import androidx.annotation.Keep;
import androidx.annotation.NonNull;

import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.plugins.shim.ShimPluginRegistry;

/**
 * Generated file. Do not edit.
 * This file is generated by the Flutter tool based on the
 * plugins that support the Android platform.
 */
@Keep
public final class GeneratedPluginRegistrant {
  public static void registerWith(@NonNull FlutterEngine flutterEngine) {
    ShimPluginRegistry shimPluginRegistry = new ShimPluginRegistry(flutterEngine);
    flutterEngine.getPlugins().add(new io.flutter.plugins.flutter_plugin_android_lifecycle.FlutterAndroidLifecyclePlugin());
    flutterEngine.getPlugins().add(new io.github.ponnamkarthik.toast.fluttertoast.FlutterToastPlugin());
    flutterEngine.getPlugins().add(new com.baseflow.geolocator.GeolocatorPlugin());
    flutterEngine.getPlugins().add(new com.baseflow.googleapiavailability.GoogleApiAvailabilityPlugin());
    flutterEngine.getPlugins().add(new io.flutter.plugins.googlemaps.GoogleMapsPlugin());
    flutterEngine.getPlugins().add(new io.flutter.plugins.googlesignin.GoogleSignInPlugin());
    flutterEngine.getPlugins().add(new io.flutter.plugins.imagepicker.ImagePickerPlugin());
      com.codeheadlabs.libphonenumber.LibphonenumberPlugin.registerWith(shimPluginRegistry.registrarFor("com.codeheadlabs.libphonenumber.LibphonenumberPlugin"));
    flutterEngine.getPlugins().add(new com.lyokone.location.LocationPlugin());
    flutterEngine.getPlugins().add(new com.baseflow.location_permissions.LocationPermissionsPlugin());
    flutterEngine.getPlugins().add(new io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin());
    flutterEngine.getPlugins().add(new com.aboutyou.dart_packages.sign_in_with_apple.SignInWithApplePlugin());
  }
}

这是我的Android文件夹结构:

Android folder screen shot

我已经尝试过谷歌搜索解决方案,但没有找到与我的问题类似的建议。以下是我的Flutter Doctor输出:

[✓] Flutter (Channel stable, 1.22.5, on Mac OS X 10.15.4 19E287 darwin-x64, locale en-KE)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
 
[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
[✓] Android Studio (version 3.6)
[✓] VS Code (version 1.53.2)
[✓] Connected device (1 available)

! Doctor found issues in 1 category.

这是我的依赖关系

dependencies:
  flutter:
    sdk: flutter
  carousel_slider: ^2.3.1
  intl_phone_number_input: ^0.5.2+2
  pinput: ^0.2.6
  cupertino_icons: ^1.0.0
  dotted_border: ^1.0.6
  dotted_line: ^2.0.2
  date_field: ^1.0.5
  intl: ^0.16.1
  image_picker: ^0.6.7+22
  flutter_rating_bar: ^3.2.0+1
  signature: ^3.2.0
  scrollable_positioned_list: ^0.1.9
  http: ^0.12.1
  shared_preferences: ^0.5.12+4
  provider: null
  google_maps_flutter: ^1.2.0
  location: ^3.2.4
  geolocator: ^5.3.2+2
  shimmer: ^1.1.2
  flutter_google_places: ^0.2.6
  google_maps_webservice: ^0.0.19
  fluttertoast: ^7.1.6
  flutter_polyline_points: ^0.2.4
  uuid: null
  google_sign_in: ^4.5.9
  sign_in_with_apple: ^2.5.4
  firebase_messaging: ^7.0.3

我尝试将库、iOS和pubspec.yaml转移到新项目中,但错误仍然存在。请帮忙!
12个回答

26

我经常尝试清除Flutter的构建:

flutter clean

魔法指令... - undefined

12

在费尽周折后,我决定尝试从众多搜索结果中随机选择一个解决方案,结果惊喜不已。

flutter pub cache repair

6

只需运行

flutter clean
flutter build

我遇到了同样的问题,这个解决方案有用。


6

通过运行以下两个命令,我的问题得到了解决

flutter clean
flutter pub get

6
在我的情况下,我尝试过。
flutter clean
flutter pub cache repair
flutter pub get

但是没有取得任何积极的结果,所以我去了位于android/app/build.gradle的app级别build.gradle文件,并更改了...SdkVersion的值:
    android {
        compileSdkVersion 33  // was `flutter.compileSdkVersion`
    }

    defaultConfig {
        minSdkVersion 29 // was `flutter.minSdkVersion`
        targetSdkVersion 33 // was `flutter.targetSdkVersion`
    }

是的,对我来说有效。 - undefined

4

你必须从pubspec.yml中分离一个插件,然后清除缓存

flutter clean
flutter pub cache repair
flutter pub get

2
在我的情况下
我的错误:->
C:\Users\Niket\flutter\.pub-cache\hosted\pub.dartlang.org\permission_handler-8.3.0\android\src\main\java\com\baseflow\permissionhandler\PermissionManager.java:321: error: cannot find symbol
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
                                                           ^
  symbol:   variable S
  location: class VERSION_CODES

解决方案:
步骤1:前往android/app/src/build.gradle 步骤2:将compileSdkVersion更新为您虚拟设备的版本
android {
    compileSdkVersion 31 //before its 30 
    ...
}

你是个明星。谢谢。 - Pramesh Bajracharya

2

flutter clean 不会删除 GeneratedPluginRegistrant.java

尝试手动从 android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java 中删除它

然后当然要运行 flutter pub get


1

我已尝试了所有选项

  1. flutter clean
  2. flutter build apk

即使在此之后,我仍然找不到解决方案。 最终我发现我的错误是没有在项目中添加

key.properties 文件。


1

我刚刚设置了我的Java路径,现在它可以正常工作了。进入Go --> File ---> Project Structure-->选择Java路径,一切就绪。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接