首页 > 解决方案 > 编译失败“任务:app:compileDebugJavaWithJavac FAILED”

问题描述

在我尝试运行我的 ionic cordova 应用程序后随机弹出此错误。这不仅发生在我一直在工作的分支上,而且发生在我尝试运行的所有其他分支上,这让我相信它与我的机器有关。我尝试重新启动并重新安装软件包并没有解决问题。

> ionic-app-scripts.cmd build --target cordova --platform android
[23:25:18]  ionic-app-scripts 3.2.4 
[23:25:18]  build dev started ... 
[23:25:18]  clean started ... 
[23:25:18]  clean finished in 21 ms 
[23:25:18]  copy started ...
[23:25:18]  deeplinks started ... 
[23:25:18]  deeplinks finished in 515 ms 
[23:25:18]  transpile started ... 
[23:25:25]  transpile finished in 6.59 s 
[23:25:25]  preprocess started ... 
[23:25:25]  preprocess finished in less than 1 ms
[23:25:25]  webpack started ...
[23:25:25]  copy finished in 7.26 s 
[23:25:30]  webpack finished in 5.09 s 
[23:25:30]  sass started ... 
[23:25:32]  sass finished in 1.82 s 
[23:25:32]  postprocess started ... 
[23:25:32]  postprocess finished in 14 ms
[23:25:32]  lint started ...
[23:25:32]  build dev finished in 14.19 s 
no-unused-variable is deprecated. Since TypeScript 2.9. Please use the built-in compiler checks instead.
[23:25:36]  lint finished in 4.22 s 
> cordova.cmd build android
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=undefined (recommended setting)
ANDROID_HOME=undefined (DEPRECATED)
Using Android SDK: C:\Users\IvanTzenev\AppData\Local\Android\sdk
Subproject Path: CordovaLib
Subproject Path: app

> Task :app:compileDebugJavaWithJavac FAILED
C:\GitHub\Accentis-Ionic\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;
                                 ^
C:\GitHub\Accentis-Ionic\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
C:\GitHub\Accentis-Ionic\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
C:\GitHub\Accentis-Ionic\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
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\org\apache\cordova\camera\CameraLauncher.java:40: error: package android.support.v4.content does not exist
import android.support.v4.content.FileProvider;
                                 ^
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\org\apache\cordova\camera\CordovaUri.java:25: error: package android.support.v4.content does not exist
import android.support.v4.content.FileProvider;
                                 ^
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\org\apache\cordova\camera\FileProvider.java:21: error: package android.support.v4.content does not exist
public class FileProvider extends android.support.v4.content.FileProvider {}
                                                            ^
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:137: error: cannot find symbol
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
     ^
  symbol:   class RequiresApi
  location: class IonicWebViewEngine.ServerClient
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\cordova\plugins\Diagnostic.java:648: 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
C:\GitHub\Accentis-Ionic\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
C:\GitHub\Accentis-Ionic\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
C:\GitHub\Accentis-Ionic\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
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\org\apache\cordova\camera\CameraLauncher.java:303: error: cannot find symbol
        this.imageUri = new CordovaUri(FileProvider.getUriForFile(cordova.getActivity(),
                                                   ^
  symbol:   method getUriForFile(Activity,String,File)
  location: class FileProvider
C:\GitHub\Accentis-Ionic\platforms\android\app\src\main\java\org\apache\cordova\camera\CameraLauncher.java:801: error: cannot find symbol
                        Uri tmpFile = FileProvider.getUriForFile(cordova.getActivity(),
                                                  ^
  symbol:   method getUriForFile(Activity,String,File)
  location: class FileProvider
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
14 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 1s
21 actionable tasks: 1 executed, 20 up-to-date
Command failed with exit code 1: C:\GitHub\Accentis-Ionic\platforms\android\gradlew cdvBuildDebug -b C:\GitHub\Accentis-Ionic\platforms\android\build.gradle
[ERROR] An error occurred while running subprocess cordova.

        cordova.cmd build android exited with exit code 1.

        Re-running this command with the --verbose flag may provide more information.

标签: javaandroidtypescriptionic-frameworkionic-cordova

解决方案


我认为您缺少这些 v4 库或依赖项未正确同步。首先你可以使你的项目失效/重启(Android Studio中的文件菜单),如果仍然不能工作,那么可以检查下面的链接:包android.support.v4.app不存在;在安卓工作室 0.8


推荐阅读