Flutterドキュメントの手順に従って、Intellij IDEAで最初のFlutterアプリをビルドしようとしました。実行しようとすると、Java_HOME変数に関するエラーが発生しました。また、build.gradleファイル内のシンボル「プロパティ」を解決できないというエラーが発生します。どうすればいいかわからない。
これは、コンソールウィンドウに表示されるエラー情報です。
Launching lib\main.Dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Finished with error: ProcessException: Process
"F:\untitled\Android\gradlew.bat" exited abnormally:
ERROR: Java_HOME is set to an invalid directory: F:\Google download\jdk-
10.0.1_windows-x64_bin.exe
Please set the Java_HOME variable in your environment to match the
location of your Java installation.
Command: F:\untitled\Android\gradlew.bat -v
実際、Java_HOME変数には何の問題もありません。適切なディレクトリC:\ Program Files(x86)\ Java\jdk1.8.0_131に設定しました。
「F:\ untitled\Android\gradlew.bat -v」の上に表示されるコマンドを実行すると、gradleバージョンが更新されたように見えましたが、エラーは解決しませんでした。
そして、これはbuild.gradleファイルのコードです。
def localProperties = new Properties()
//there will be a highlight on Properties indicates that 'cannot resolve symbol "Properties" '
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
//the same as the Properties on GradleException
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.Android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
Android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.Android.com/studio/build/application-id.html).
applicationId "com.example.untitled"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
}
あなたの「project\Android\build.gradle」で次のように変更してください:
classpath 'com.google.gms:google-services:4.3.2'
に:
classpath 'com.google.gms:google-services:4.0.2'
それは私のために働いています:
GradleException()
をFileNotFoundException()
に更新します 見つかったソリューションAndroid Studioで同じ問題が発生しました。これはFlutterプラグインのバグのようですので、Intellijでも問題がある可能性が高いです。= Android Studio 「Android Studio)で編集のために開く」(右上)へのリンクがあります。クリックすると、ハイライト表示されている問題はもうありません。IntelliJで同様のリンクを確認します。これが私がこれを知ったFlutterの問題です https://github.com/flutter/flutter/issues/37391 。
Flutterドキュメントによると https://flutter.dev/docs/development/tools/Android-studio#Android-ide
Flutterプロジェクトのルートディレクトリを開いても、すべてのAndroidファイルがIDEに公開されるわけではありません。 Flutterアプリには、Androidという名前のサブディレクトリが含まれています。このサブディレクトリを独自のプロジェクトとしてAndroid Studioで開くと、IDEはすべてのAndroidファイルの編集とリファクタリングを完全にサポートできます(Gradleスクリプトなど)。 )。
同じ問題があります。 Androidモジュールを最初に別のタブでASを使用して開かずに編集しているため、このエラーが発生します([ツール]-> [フラッター]-> [開く] Androidモジュール..))。それから私は解決策を持っています、あなたのAndroid Studio(File-> Invalidate Chache/Restart))で再起動して、chacheを殺してください。
それは私のために修正されました、あなたも願っています
https://github.com/flutter/flutter/issues/29608#issuecomment-528243662