嗨,我在运行时遇到此错误,而没有在android设备中调试我的项目。
yarn tsc --init
我在代码中使用了连接插件,并且错误消息指出,当我尝试运行flutter build apk时
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compileDebugKotlin'.
> Could not resolve all artifacts for configuration ':app:debugCompileClasspath'.
> Failed to transform artifact 'arm64_v8a_debug.jar (io.flutter:arm64_v8a_debug:1.0.0-c8e3b9485386425213e2973126d6f57e7ed83c54)' to match attributes
{artifactType=android-classes, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
> Execution failed for IdentityTransform: C:\Users\Admin\.gradle\caches\modules-2\files-2.1\io.flutter\arm64_v8a_debug\1.0.0-c8e3b9485386425213e2973126d6f57e7ed83c54\d84df37647d9c0eb0da1f86ba05744d618192eb7\arm64_v8a_debug-1.0.0-c8e3b9485386425213e2973126d6f57e7ed83c54.jar.
> Cannot parse result path string:
* 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
BUILD FAILED in 40s
Running Gradle task 'assembleDebug'...
Running Gradle task 'assembleDebug'... Done 42.5s
Exception: Gradle task assembleDebug failed with exit code 1
有人可以帮我吗?预先感谢。
更新:我可以在三星j7中运行它,但是在三星a7中却出现上述错误
我用来检查连接性的代码
Note: C:\Users\Admin\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\connectivity-0.4.9\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityBroadcastReceiver.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
我的扑打医生-v看起来像这样
import 'package:connectivity/connectivity.dart';
import 'package:flutter/material.dart';
import 'dart:io';
class NetworkConnection{
Future<String> checkInternetConnectivity(BuildContext context) async
{
var result = await Connectivity().checkConnectivity();
String connection = "unknown";
if(result == ConnectivityResult.none)
{
//_showToast(context,"No Connectivity");
connection = "not connected";
}
else if(result == ConnectivityResult.mobile)
{
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
connection = "connected";
}
} on SocketException catch (_) {
connection = "not connected";
}
//_showToast(context,"Connected to mobile");
}
else if(result == ConnectivityResult.wifi)
{
try {
final result = await InternetAddress.lookup('google.com');
if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
connection = "connected";
}
} on SocketException catch (_) {
connection = "not connected";
}
//_showToast(context,"Connected to wifi");
}
return connection;
}
}
这是我的 build.gradle 文件
[√] Flutter (Channel stable, 1.20.2, on Microsoft Windows [Version 10.0.18362.1016], locale en-IN)
• Flutter version 1.20.2 at C:\src\flutter
• Framework revision bbfbf1770c (7 days ago), 2020-08-13 08:33:09 -0700
• Engine revision 9d5b21729f
• Dart version 2.9.1
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at C:\Users\Admin\AppData\Local\Android\Sdk
• Platform android-29, build-tools 29.0.3
• ANDROID_HOME = C:\Users\Admin\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio1\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at C:\Program Files\Android\Android Studio1
• Flutter plugin version 48.0.2
• Dart plugin version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] IntelliJ IDEA Community Edition (version 2019.3)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4
• Flutter plugin version 45.1.2
• Dart plugin version 193.6911.31
[√] VS Code (version 1.48.0)
• VS Code at C:\Users\Admin\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.13.2
[√] Connected device (1 available)
• SM A750F (mobile) • 32008575eabc85fb • android-arm64 • Android 10 (API 29)
答案 0 :(得分:1)
您似乎没有在Internet
中设置权限AndroidManifest.xml
。
查看此Issue。
答案 1 :(得分:1)
尝试将这些设置添加到defaultConfig
上的android/app/build.gradle
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'x86', 'armeabi-v7a','arm64-v8a', 'x86_64'
}
例如:
defaultConfig {
applicationId "com.package.name"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "0.0.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'x86', 'armeabi-v7a','arm64-v8a', 'x86_64'
}
}
答案 2 :(得分:1)
看来您的Samsung A7是Android 10(API 29)。但是,由flutter自动生成的build.gradle
并不针对API 29。
您可以通过更新android\app\build.gradle
文件中的以下行来更改此设置。
在更新文件后运行flutter run
android {
compileSdkVersion 29 //change compileSdkVersion to 29
defaultConfig {
applicationId "com.example.new_app"
minSdkVersion 21
targetSdkVersion 29 //this line: change 28 to 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
}
关于弃用警告,显然是由flutter团队开发的某些插件中的warning is common,但它不应影响flutter应用程序的编译。
答案 3 :(得分:0)
根据您在项目中使用的 Packages (即 pubspec.yaml ),检查您的 minSdkVersion 和 targetSdkVersion >文件。
即
defaultConfig {
.
.
.
minSdkVersion 16
targetSdkVersion 28
.
.
}