我正在使用 Flutter 应用。我可以在android设备上成功运行应用程序,但是尝试制作build ( .apk )文件并出现以下问题。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':flutter_twitter:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
/Users/ipatel/.gradle/caches/transforms-2/files-2.1/8f09fa5c6115de167b21b323f769edd9/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found.
/Users/ipatel/.gradle/caches/transforms-2/files-2.1/8f09fa5c6115de167b21b323f769edd9/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/ttcIndex not found.
* 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 5m 2s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done 303.8s (!)
The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
Building plugin firebase_messaging...
The plugin firebase_messaging could not be built due to the issue above.
以下是项目的材料
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.xxxx.eeee"
minSdkVersion 21
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
> local.properties
sdk.dir=/Users/ipatel/Library/Android/sdk
flutter.sdk=/Users/ipatel/Documents/Amit/FlutterSetup/flutter
flutter.buildMode=release
flutter.versionName=1.0.0
flutter.ver
我的应用程序与 AndroidX 兼容,还尝试了许多解决方案,但无法解决我的问题。
我检查了
-https://github.com/roughike/flutter_twitter_login/issues/29
-A failure occurred while executing com.android.build.gradle.internal.tasks
-flutter Error "Android dependency 'androidx.core:core' has different version" using flutter_local_notifications and location packages
和其他人。
Flutter Doctor结果:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v1.12.13+hotfix.6, on Mac OS X 10.14.3 18D109, locale en-IN)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 10.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.5)
[✓] VS Code (version 1.41.1)
[✓] Connected device (4 available)
build.gradle
android {
compileSdkVersion 28
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
applicationId "com.xxxx.aaaa"
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.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
}
}
}
gradle.properties
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true
〜PS:如果您想了解我的更多细节,请告诉我。
答案 0 :(得分:5)
问题Execution failed for task ':flutter_twitter:verifyReleaseResources'.
我找到此问题的链接
flutter_twitter_login/issue #12
在您的pubspec.yaml
文件中添加此依赖项,并让我知道它是否有效?
flutter_twitter_login:
git: git://github.com/eudangeld/flutter_twitter_login.git
答案 1 :(得分:5)
问题是某些库不兼容,或者某些库不使用androidx。多亏了Google将所有支持库转移到androidx上,现在许多库都发生了这样的冲突,我主要去调试其中的库有问题,例如从pubspec中注释和取消注释库。
假设是flutter_twitter插件是问题所在。
我们可以检查一下,该Twitter插件未使用AndroidX link,因此我们需要自行更改。
(所有这些更改都需要在twitter插件中进行更改,而不是在Flutter项目中进行更改)
我认为您可以将gradle.properties更改为使用androidx,并将版本编译为28 gradle.properties:
android.useAndroidX=true
android.enableJetifier=true
添加这两行,更改gradle类路径
classpath 'com.android.tools.build:gradle:3.5.3'
和compileSdkVersion 28
在flutter_twitter中。
我能够使用该插件生成发布版本。
哦,是的,您可以在
/Users/parth.dave/.pub-cache/hosted/pub.dartlang.org/flutter_twitter_login-1.1.0/
上找到插件的缓存版本,可以在其中进行更新。或者在androidstudio和studio中打开android文件夹,将向您显示两个项目app和twitter,您可以在其中更新这些内容。
有时候,最好在android studio中打开android项目并更新所有可能会出错的内容,然后再运行flutter项目。
答案 2 :(得分:1)
您需要将flutter_twitter模块的compileSdkVersion更新为28:
1 /在flutter项目中,找到“ android”文件夹,并在Android Studio中将其作为android项目打开。
2 /展开“ Gradle Scripts”,然后等待其加载。
3 /找到“ build.gradle(模块:flutter_twitter)”
4 /从27-> 28修改compileSdkVersion。
5 /保存更改。
此后,我的构建工作了。 答案在这里:https://github.com/flutter/flutter/issues/32595
答案 3 :(得分:1)
谢谢,它为我工作了device_id: ^0.1.3
插件与cloud_firestore: ^0.13.4+2
在flutter项目中,找到您的android
文件夹,并在Android Studio中将其作为android项目打开。
展开Gradle Scripts
并等待其加载。
找到build.gradle (Module: device_id)
从compileSdkVersion
-> 27
修改28
。
保存更改。
答案 4 :(得分:0)
好像您的$('#radio').click()
库版本不支持AndroidX支持。确保您已更新该库的版本。
firebase_messaging
答案 5 :(得分:0)
我之前也遇到过同样的问题,并且花了将近半天的时间才找到解决方案。 我的项目compileSdkVersion已经是28,但在我的情况下,应用程序使用包compileSdkVersion在28以下,因此我不得不在 / home /“用户” /.pub-cache/hosted/pub.dartlang.org/“有问题的软件包” /android/build.gradle。 它解决了问题。
答案 6 :(得分:0)
我遇到了类似的问题,这是我通过点击this链接来解决的方法。
android/app/build.gradle
文件中定义的任何内容)修改compileSdkVersion。flutter clean
答案 7 :(得分:0)