java - 编译失败“任务: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.
解决方案
我认为您缺少这些 v4 库或依赖项未正确同步。首先你可以使你的项目失效/重启(Android Studio中的文件菜单),如果仍然不能工作,那么可以检查下面的链接:包android.support.v4.app不存在;在安卓工作室 0.8
推荐阅读
- winforms - 如何使用 Winforms 对 SourceCache 进行排序、绑定到 BindingList 以及手动处理 IChangeSet?
- swift - 如何在 Swift 中杀死并重启 UnityGLView
- javascript - 无法在代码中使用从 js 文件导入的 var
- python - 如何检查一个数字是否只出现在一个列中?
- java - Vaadin Grid Table:如何为空单元格绘制边框?
- excel - 从多个日历中删除会议
- python - 在 Windows 上运行 docker-py 时出现客户端错误
- json - AWS - API Gateway 的 IAM 策略
- erlang - 如何修改 erts 模块
- python - 将来自其他模型的额外字段添加到 Modelform 中并提供 attr