Flutter-无法在Android设备上运行

时间:2020-08-09 10:59:07

标签: android flutter

嗨,我在运行时遇到此错误,而没有在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)

4 个答案:

答案 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
    .
    .
}