【问题标题】:ionic 4 android, android error: cannot find symbolionic 4 android,android错误:找不到符号
【发布时间】:2019-09-30 13:30:21
【问题描述】:

所以这个构建没有问题,然后我在构建 ios 时遇到问题,所以我删除了 android 平台并再次添加它。平台的所有插件和添加都已正确添加,但是在运行命令 $ ionic cordova build android 时,我收到很多关于无法找到符号的错误。

> Task :app:compileDebugJavaWithJavac FAILED
24 actionable tasks: 5 executed, 19 up-to-date
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_Notifications.java:35: error: cannot find symbol
import android.support.v4.app.NotificationManagerCompat;
                             ^
  symbol:   class NotificationManagerCompat
  location: package android.support.v4.app
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic.java:57: error: cannot find symbol
import android.support.v4.app.ActivityCompat;
                             ^
  symbol:   class ActivityCompat
  location: package android.support.v4.app
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_External_Storage.java:28: error: cannot find symbol
import android.support.v4.os.EnvironmentCompat;
                            ^
  symbol:   class EnvironmentCompat
  location: package android.support.v4.os
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/nl/xservices/plugins/FileProvider.java:4: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {
                                                            ^
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:11: error: package android.support.annotation does not exist
import android.support.annotation.RequiresApi;
                                 ^
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java:121: error: cannot find symbol
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
     ^
  symbol:   class RequiresApi
  location: class IonicWebViewEngine.ServerClient
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_Notifications.java:123: error: cannot find symbol
        NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this.cordova.getActivity().getApplicationContext());
        ^
  symbol:   class NotificationManagerCompat
  location: class Diagnostic_Notifications
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_Notifications.java:123: error: cannot find symbol
        NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this.cordova.getActivity().getApplicationContext());
                                                              ^
  symbol:   variable NotificationManagerCompat
  location: class Diagnostic_Notifications
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic.java:639: error: cannot find symbol
            java.lang.reflect.Method method = ActivityCompat.class.getMethod("shouldShowRequestPermissionRationale", Activity.class, java.lang.String.class);
                                              ^
  symbol:   class ActivityCompat
  location: class Diagnostic
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/cordova/plugins/Diagnostic_External_Storage.java:216: error: cannot find symbol
                    addPath = Environment.MEDIA_MOUNTED.equals(EnvironmentCompat.getStorageState(file));
                                                               ^
  symbol:   variable EnvironmentCompat
  location: class Diagnostic_External_Storage
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/nl/xservices/plugins/SocialSharing.java:169: error: cannot find symbol
                fileUri = FileProvider.getUriForFile(webView.getContext(), cordova.getActivity().getPackageName()+".sharing.provider", new File(fileUri.getPath()));
                                      ^
  symbol:   method getUriForFile(Context,String,File)
  location: class FileProvider
/Users/c.francia/Desktop/application/app/platforms/android/app/src/main/java/nl/xservices/plugins/SocialSharing.java:285: error: cannot find symbol
                fileUri = FileProvider.getUriForFile(webView.getContext(), cordova.getActivity().getPackageName()+".sharing.provider", new File(fileUri.getPath()));
                                      ^
  symbol:   method getUriForFile(Context,String,File)
  location: class FileProvider

我有大约 25 个此类错误。以前从未见过此错误,也不是 java 程序员/经常使用 android studio。

我发现this SO 帖子看起来可能有帮助?我只是不知道如何通过 ionic 或通过 android studio 更新编译器工具?

我还更新了我的 SDK 工具

  • 当前版本:Android Studio 3.5
  • 内部版本号:AI-191.8026.42.35.5791312
  • Android SKD 工具:26.1.1
  • Android 平台版本:API 29:Android 10.0 (Q) 修订版 3

$ java --version

 $ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

【问题讨论】:

  • 分享您的 Java 详细信息。你用的是什么java版本?
  • 它在帖子的底部

标签: android cordova


【解决方案1】:

尝试在android平台下的config.xml中添加如下代码

 <preference name="ANDROID_SUPPORT_V4_VERSION" default="27.+"/>
 <framework src="com.android.support:supportv4:$ANDROID_SUPPORT_V4_VERSION"/>

【讨论】:

  • 谢谢,我会试一试。我目前有一些权限问题,但一旦解决了,我会通知您是否解决了
  • 能否请您为接下来的人解释一下答案。这对我很有用,非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-06
  • 2020-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多