การดำเนินการล้มเหลวสำหรับงาน ': flutter_twitter: VerifyReleaseResources'


9

ฉันกำลังทำงานกับแอพ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
- มีความล้มเหลวเกิดขึ้นขณะเรียกใช้งาน com.android.build.gradle.internal.tasks
- ข้อผิดพลาดในการกระพือ "Androidx.core: core 'มีความแตกต่างกัน เวอร์ชั่น "using flutter_local_notifications และแพ็คเกจตำแหน่ง

และคนอื่น ๆ.

กระพือหมอผล:

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: แจ้งให้เราทราบหากคุณต้องการรายละเอียดเพิ่มเติมจากจุดสิ้นสุดของฉัน


รุ่นกระพือของคุณคืออะไร
Blasanka

@Blasanka Flutter (Channel เบต้า, v1.12.13 + hotfix.6)
iPatel

คุณลองเพิ่ม multiDex ให้เป็นจริงหรือไม่ถ้าใช่คุณสามารถลองกับช่องหลักหรือช่องเสถียรได้
Blasanka

@Blasanka ฉันได้ตั้งค่าแล้วโปรดตรวจสอบไฟล์build.gradleของฉัน
iPatel

คุณสามารถโพสต์เนื้อหาของgradle.propertiesไฟล์ของคุณ?
Harshvardhan Joshi

คำตอบ:


4

ปัญหาคือห้องสมุดบางแห่งเข้ากันไม่ได้หรือไม่ได้ใช้ androidx ในขณะที่คนอื่นกำลัง ขอบคุณ google สำหรับการถ่ายโอนการสนับสนุน lib ไปยัง androidx ทั้งหมดตอนนี้ห้องสมุดหลายแห่งมีข้อขัดแย้งเช่นนี้และฉันส่วนใหญ่ไปที่การแก้ไขที่ lib มีปัญหาเช่นการแสดงความคิดเห็นและไม่แสดงข้อคิดเห็น lib จาก pubspec

สมมติว่าปลั๊กอินของ flutter_twitter เป็นปัญหา

เนื่องจากเราสามารถตรวจสอบได้ว่าปลั๊กอินตัวสั่นด้วยความตื่นเต้นนั้นไม่ได้ใช้ลิงก์ AndroidX ดังนั้นเราจึงจำเป็นต้องเปลี่ยนมันด้วยตนเอง

(การเปลี่ยนแปลงทั้งหมดเหล่านี้จะต้องมีการเปลี่ยนแปลงในปลั๊กอินทวิตเตอร์ไม่ใช่โครงการกระพือ)

ฉันคิดว่าคุณสามารถเปลี่ยน gradle.properties เพื่อใช้ androidx และคอมไพล์เวอร์ชันเป็น 28 gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

เพิ่มสองบรรทัดนี้เปลี่ยน classpath gradle classpath 'com.android.tools.build:gradle:3.5.3' และcompileSdkVersion 28ใน flutter_twitter ฉันสามารถสร้างรุ่นวางจำหน่ายโดยใช้ปลั๊กอินนั้น

Ohh yah คุณสามารถค้นหาปลั๊กอินเวอร์ชันที่แคชไว้ใน/Users/parth.dave/.pub-cache/hosted/pub.dartlang.org/flutter_twitter_login-1.1.0/ลักษณะนี้ซึ่งคุณสามารถอัปเดตได้ หรือเปิดโฟลเดอร์ android ใน androidstudio และ studio จะแสดงสองแอพโปรเจ็กต์และทวิตเตอร์ที่คุณสามารถอัปเดตสิ่งนี้

บางครั้งก็เป็นการดีกว่าที่จะเปิดโครงการ android ใน android studio และอัปเดตทุกสิ่งที่คุณอาจได้รับข้อผิดพลาดก่อนที่จะเรียกใช้โครงการที่กระพือ


หวังว่านี่อาจช่วยแก้ปัญหาของคุณได้ แสดงความคิดเห็นหากไม่ฉันจะพยายามหาทางออกอื่น
Parth Dave

ขอบคุณสำหรับคำตอบ pratik ที่จริงฉันเพิ่งสร้างโครงการใหม่ใน Fluter โดยที่ "android.useAndroidX = true, android.enableJetifier = true" และcompileSdkVersion 28ตั้งค่าไว้แล้วในโครงการและฉันเพิ่งเปลี่ยน'com.android.tools.build:gradle:3.5.3'และพยายามสร้างโดยflutter build apkมีปัญหาเดียวกัน
iPatel

ไม่ไม่ฉันกำลังพูดถึงการเปลี่ยนการตั้งค่าปลั๊กอิน twitter ไม่ใช่การตั้งค่าโครงการของคุณ
Parth Dave

ใช่ .. ฉันได้รับคำตอบขอบคุณ
iPatel

5

มีปัญหากับExecution failed for task ':flutter_twitter:verifyReleaseResources'. ฉันพบลิงค์สำหรับปัญหานี้ flutter_twitter_login / ปัญหา # 12

เพิ่มการพึ่งพานี้ในpubspec.yamlไฟล์ของคุณและแจ้งให้ฉันทราบว่าการทำงานนี้หรือไม่?

flutter_twitter_login: 
  git: git://github.com/eudangeld/flutter_twitter_login.git

0

ดูเหมือนว่าfirebase_messagingรุ่นไลบรารี่ของคุณไม่รองรับการรองรับ AndroidX ตรวจสอบให้แน่ใจว่าคุณได้อัพเดทไลบรารีนี้แล้ว

dependencies:
  firebase_messaging: ^6.0.9

ฉันกำลังใช้งานล่าสุด
iPatel

0

คุณจำเป็นต้องอัพเดต compileSdkVersion ของโมดูล flutter_twitter เป็น 28:

1 / ในโครงการกระพือของคุณค้นหาโฟลเดอร์ "android" และเปิดเป็นโครงการ android ใน Android Studio

2 / ขยาย "Gradle Scripts" และรอให้โหลด

3 / ค้นหา "build.gradle (โมดูล: flutter_twitter)"

4 / แก้ไข compileSdkVersion จาก 27-> 28

5 / บันทึกการเปลี่ยนแปลง

งานสร้างของฉันทำงานหลังจากนั้น คำตอบอยู่ที่นี่: https://github.com/flutter/flutter/issues/32595


0

ขอบคุณมันใช้งานได้กับอุปกรณ์ของฉันสำหรับ device_id: ^ 0.1.3 ปลั๊กอินที่เต็มไปด้วย cloud_firestore: ^ 0.13.4 + 2

  1. ในโครงการกระพือของคุณค้นหาโฟลเดอร์ "android" ของคุณและเปิดเป็นโครงการ android ใน Android Studio

  2. ขยาย "Gradle Scripts" และรอให้โหลด

  3. ค้นหา "build.gradle (โมดูล: device_id)"

  4. แก้ไข compileSdkVersion จาก 27-> 28

  5. บันทึกการเปลี่ยนแปลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.