ไฟล์ dex หลายไฟล์กำหนด Landroid / support / v4 / accessibilityservice / AccessibilityServiceInfoCompat


212

ถ้าฉันเรียกใช้gradle assembleDebugจากบรรทัดคำสั่งฉันได้รับข้อผิดพลาดนี้ทันที:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
    at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
    at com.android.dx.command.dexer.Main.run(Main.java:232)
    at com.android.dx.command.dexer.Main.main(Main.java:174)
    at com.android.dx.command.Main.main(Main.java:91)

ถ้าฉัน grep สำหรับ v4 ฉันเห็นสองไฟล์ในโฟลเดอร์สร้างของฉัน

Binary file build/pre-dexed/debug/support-v4-19.0.0-2ba5fdd60a6c3836b3104a863fe42897da1fa9d1.jar matches
Binary file build/pre-dexed/debug/support-v4-r7-227d905d79b23b20866531d4f700446c040a2ccb.jar matches

ไฟล์ gradle ของฉันมีเฉพาะห้องสมุดสนับสนุนนี้:

compile 'com.android.support:support-v13:19.0.0'

ฉันนิ่งงันว่าไลบรารี r7 นั้นถูกรวมมาอย่างไร ฉันวิ่งgradle cleanแล้วมันจะปรากฏขึ้นที่นั่นเสมอเมื่อฉันเรียกใช้เครื่องมือรวบรวมอีกครั้ง

หากฉัน grep สำหรับ r7 ในไดเรกทอรีสร้างฉันเห็นมันในไฟล์:

Binary file build/exploded-bundles/ComGoogleAndroidGmsPlayServices4030.aar/classes.jar matches

หากฉันไม่รวม v13 สิ่งอื่น ๆ ก็ไม่ได้รวบรวม

แต่ v13 ไม่รวมไลบรารีการสนับสนุน v4 ใช่ไหม

สิ่งนี้เป็นความไม่ลงรอยกันระหว่างชุดบริการ AAR สำหรับเล่นและไลบรารี v13 หรือไม่

ฉันจับไฟล์ gradle จาก gradleplease.appspot.com

การลบบริการการเล่นไม่สามารถแก้ไขได้ ข้อผิดพลาดเดียวกัน

การพึ่งพาของฉันใน build.gradle:

 dependencies {


 // Google Play Services
//compile 'com.google.android.gms:play-services:4.0.30'

// Support Libraries
//compile 'com.android.support:support-v4:19.0.0'
///compile 'com.android.support:appcompat-v7:19.0.0'
//compile 'com.android.support:gridlayout-v7:19.0.0'
compile 'com.android.support:support-v13:19.0.0'
compile 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.5'
compile 'commons-codec:commons-codec:1.9'
compile 'com.madgag:markdownj-core:0.4.1'
compile 'com.wu-man:android-oauth-client:0.0.2'
compile 'com.google.http-client:google-http-client-jackson2:1.17.0-rc'
compile 'org.apache.commons:commons-lang3:3.2'
compile 'com.google.code.gson:gson:2.2.4'
}

1
ฉันลองวิธีแก้ปัญหาทั้งหมดและมันเกิดขึ้นทั้งหมดไม่ได้ผล กว่าที่ฉันเพิ่งสร้างโครงการใหม่ด้วยชื่อเดียวกันและคัดลอกไฟล์ทั้งหมดจากโครงการเก่า และมันใช้งานได้ดีในขณะนี้ หวังว่ามันจะช่วย
Sam003

ฉันมีปัญหานี้ด้วยส่วนประกอบใน support-v13 หลังจากการดีบั๊กและพยายามหาคำตอบทั้งหมดโดยไม่เกิดประโยชน์ฉันพบว่ามันถูกนำมาใช้เมื่อฉันพยายามรวม kotlin เข้ากับโครงการซึ่งเป็นโครงการ Java ที่น่าตื่นเต้น ฉันลบไลบรารีมาตรฐาน kotlin และไลบรารี kotlin อื่น ๆ ออกแล้วและก็ใช้ได้ จะยังคงพยายามแก้ไขปัญหากับ kotlin แต่ตอนนี้ฉันต้องทำงาน ข้อมูลใด ๆ ก็ช่วยได้เช่นกันรัก kotlin
clementiano

คำตอบ:


304

เรียกใช้gradle -q dependencies(หรือgradle -q :projectName:dependencies) เพื่อสร้างรายงานการพึ่งพา คุณควรดูว่าr7มาจากไหนเช่น:

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    |    \--- com.google.android:support-v4:r7
|    +--- com.commonsware.cwac:camera:0.5.4
|    \--- com.android.support:support-v4:18.0.+ -> 18.0.0
\--- com.android.support:support-v4:18.0.+ -> 18.0.0

จากนั้นใช้excludeคำสั่งเพื่อบล็อกการพึ่งพานั้น ในกรณีของฉันมันมาจากห้องสมุด CWAC-Camera ของฉันดังนั้นฉันจึงใช้:

dependencies {
    compile('com.commonsware.cwac:camera-v9:0.5.4') {
      exclude module: 'support-v4'
    }

    compile 'com.android.support:support-v4:18.0.+'
}

(โดยที่compileประโยคที่สองระบุรุ่นที่คุณต้องการ)

สิ่งนี้น่าจะชัดเจนขึ้นเพราะคุณจะเห็นว่าคุณเรียกใช้รายงานการพึ่งพาอีกครั้ง:

compile - Classpath for compiling the main sources.
+--- com.commonsware.cwac:camera-v9:0.5.4
|    +--- com.actionbarsherlock:actionbarsherlock:4.4.0
|    \--- com.commonsware.cwac:camera:0.5.4
\--- com.android.support:support-v4:18.0.+ -> 18.0.0

3
มีวิธีการตรวจสอบ / ยกเว้นโมดูลจาก. jar ที่ไม่พร้อมใช้งานบน Maven หรือไม่? gradle dependenciesดูเหมือนว่าจะไม่รายงานการอ้างอิงที่เพิ่มเข้ามาด้วยcompile files('libs/example.jar')
dbro

3
สมมติว่าฉันมีสองการlibs/*.jarพึ่งพากับโมดูลที่เหมือนกันไม่สามารถใช้ได้เป็นสิ่งประดิษฐ์ มีวิธีใดในการดำเนินการตรวจสอบการพึ่งพา / การแยกชั้นคล้ายกัน
dbro

2
@dbro: ไม่ว่าฉันรู้ แต่อีกครั้งฉันยังไม่ได้วิจัยในจุดนี้ IMHO ไม่ต้องใส่กุญแจมือไฟล์ JAR หนึ่งหรือทั้งสองไฟล์รู้สึกผิดพลาดเนื่องจากโมดูลทั่วไปควรถูกแยกออกเป็น JAR ของตัวเอง
CommonsWare

12
./gradlew -q: projectName: การพึ่งพาทำงานให้ฉัน
Defuera

15
ปลายด่วนสำหรับผู้ exlucing โมดูลจากการพึ่งพาโมดูล: คุณต้องเปิดการของคุณลงในcompile project(':foo') compile(project(':foo')) { exclude module: 'support-v4' }หมายเหตุวงเล็บ
espinchi

122

ฉันแก้ไขข้อผิดพลาดที่คล้ายกันโดยเพิ่มรหัสต่อไปนี้ไปยังไฟล์build.gradleของฉันภายในบล็อก android

android {
    dexOptions {
        preDexLibraries = false
    }
}

4
ทำงานให้ฉัน! มีข้อเสียอะไรบ้างที่ทำเช่นนี้?
Barrie Galitzky

@BarrieGalitzky ฉันไม่ได้พบปัญหาใด ๆ จนถึงตอนนี้
mike.tihonchik

3
ขอบคุณคนนี้ทำงานอย่างสมบูรณ์แบบเพื่อแก้ปัญหา! อย่างไรก็ตามฉันคิดว่ามันมีผลข้างเคียงบางอย่าง .. ภารกิจ assembleDebug ช้าลง 3 เท่า!
Marino

ไม่พบ dexOptions
Oliver Dixon

10
หลังจากเพิ่มสิ่งนี้ฉันได้รับข้อผิดพลาด "การแปลถูกขัดจังหวะ" เดาสิฉันจะลองใช้วิธีการแบบ CommonsWare
DroidHeaven

36

เนื่องจากรูปภาพมีค่าหนึ่งพันคำ

เพื่อให้ง่ายขึ้นและเร็วขึ้นในการทำภารกิจนี้ให้กับผู้เริ่มต้นอย่างฉัน นี่คือภาพหน้าจอที่แสดงคำตอบที่โพสต์โดย@ edsappfactory.comที่เหมาะกับฉัน:

ก่อนเปิดมุมมอง Gradle ทางด้านขวาของ Androidstudio ในรายการแอพของคุณไปที่TasksจากAndroidนั้นคลิกขวาandroidDependenciesแล้วเลือกRun:

ขั้นตอนที่ 1

ประการที่สองคุณจะเห็นสิ่งนี้:

ขั้นตอนที่ 2

เหตุผลหลักที่ฉันโพสต์สิ่งนี้ไม่ใช่เรื่องง่ายที่จะทราบว่าจะใช้gradleงานที่ไหนหรือคำสั่งที่โพสต์ไว้ด้านบน ดังนั้นนี่คือสถานที่ที่จะกระตุ้นพวกเขาเช่นกัน

ดังนั้นเพื่อรันคำสั่ง gradle:

ครั้งแรก:

เป็นครั้งแรก

ประการที่สอง:

ที่สอง

ง่ายอย่างที่มันเป็น

แค่นั้นแหละ.

ขอบคุณ.


33

นอกจากนี้เพื่อให้ทราบว่าคุณสามารถดูการพึ่งพา Android ของคุณโดยไปที่มุมมอง Android Studio Gradle ของคุณและเลือกเป้าหมาย "androidDependencies"

อีกหนึ่งคำแนะนำ: ฉันมีปัญหานี้จนกว่าฉันจะลบ lib การสนับสนุน v4 ออกจากโฟลเดอร์ libs ทั้งในโครงการและโมดูล / ไลบรารีที่เกี่ยวข้องของฉัน


3
คำแนะนำเฉพาะเพิ่มเติมหรือไม่ ไม่พบ "androidDependencies" ขอบคุณ
CopperCash

ไปที่มุมมอง Gradle จากนั้นค้นหาหัวข้องานทั้งหมดเจาะลึกชื่อแอปของคุณแล้วเจาะลึกลงไปที่ ": แอพ" คุณจะพบ "androidDependencies" ที่นั่น
AutoM8R

2
มุมมอง Gradle อยู่ที่ไหน
Paul Beusterien

4
@ PaulBeusterien หากคุณมองไปทางด้านขวาสุดของหน้าต่างจะมีแท็บด้านข้างกำกับว่า Gradle คลิกเพื่อเปิดมุมมองที่ตรึงไว้ AndroidDependencies นั้นเป็นงานที่มีระดับมาก
JCricket

ขอบคุณชายฉันโพสต์ภาพหน้าจอเพื่ออธิบายคำตอบของคุณเพื่อให้ง่ายขึ้น
MBH

11

ฉันเริ่มได้รับข้อผิดพลาดนี้เมื่ออัพเกรดเป็น ButterKnife 8.5.1 ไม่มีคำตอบอื่นที่นี่ใช้ได้สำหรับฉัน

ฉันเคยgradle -q :app:dependenciesเห็นต้นไม้แล้วมองผ่านไฟล์ jar จนกว่าฉันจะพบข้อขัดแย้ง ความขัดแย้งคือการพึ่งพา butterknife ในการcom.android.support:support-compat:25.1.0มีรุ่นของการเข้าถึงระดับและcom.android.support:support-v4:23.1.1ยังมีชั้นเรียน

ฉันแก้ไขได้โดยเปลี่ยนการพึ่งพาของฉันจากสิ่งนี้:

compile 'com.jakewharton:butterknife:8.5.1'

สำหรับสิ่งนี้:

compile('com.jakewharton:butterknife:8.5.1') {
    exclude module: 'support-compat'
}

ดูเหมือนจะไม่ส่งผลกระทบต่อการดำเนินงานของ ButterKnife

แก้ไข: มีวิธีแก้ปัญหาที่ดีกว่าคืออัพเกรดไลบรารีสนับสนุน android ของฉันให้ตรงกับ ButterKnife's:

compile('com.android.support:appcompat-v7:25.2.0')
compile('com.android.support:design:25.2.0')
compile 'com.jakewharton:butterknife:8.5.1'

ให้รุ่นสนับสนุนเหมือนกันคือทางออกที่ง่ายและโมดูลยกเว้นไม่ทำงานสำหรับฉัน
Jay

ฉันแก้ไขด้วยโซลูชันที่สองเช่นกัน! ข้อขัดแย้งเดียวกัน แต่ใช้กับ Butter Knife เวอร์ชัน 8.8.1 ตัวอย่าง: การนำไปใช้ ('com.jakewharton: butterknife: 8.8.1') {ยกเว้นโมดูล: 'support-compat'} annotationProcessor 'com.jakewharton: butterknife-compiler: 8.8.1'
GFPF

9

ในกรณีที่ใครพบว่าคำตอบจากCommonsWareไม่สามารถนำไปใช้กับโครงการห้องสมุด Android นี่คือตัวอย่างที่จะแก้ไข

คอมไพล์(โครงการ (': yourAndroidLibrary')) {ยกเว้นโมดูล: 'support-v13'}

คุณจะพบปัญหา

พบวิธีการ Gradle DSL ที่ไม่รองรับ: 'แยก ()'

ถ้าคุณใช้โครงการคอมไพล์(': yourAndroidLibrary') {ยกเว้นโมดูล: 'support-v13'}

ความแตกต่างคือสร้อยข้อมือ"("และ")"ก่อน"โครงการ"


ขอขอบคุณวงเล็บหายสองชั้นหายไป!
Marko

8
exclude module: 'support-v4'

จะไม่ทำงานสำหรับฉันที่มีการพึ่งพาโครงการวิธีเดียวที่ฉันจะทำให้มันทำงานได้คือผ่านไวยากรณ์ต่อไปนี้:

configurations {
    dependencies {
        compile(project(':Android-SDK')) {
            compile.exclude module: 'support-v4'
        }
    }
}

สถานที่: Android-SDK เป็นชื่อโครงการของคุณ


8

ฉันมีปัญหาเดียวกันและดูเหมือนว่าแอปของฉันมีวิธีการมากเกินไปเนื่องจากห้องสมุด: http://developer.android.com/tools/building/multidex.html

แก้ไขมันด้วย:

android {
   defaultConfig {
   ...
   multiDexEnabled = true
   }
}

เพิ่มเติมที่นี่ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอป: dexDebug' > คำสั่งเสร็จสิ้นด้วยค่าทางออกไม่เป็นศูนย์ 2


1
Multidexing สามารถทำให้แอปเริ่มต้นความเร็วช้าลงใช้งานได้ก็ต่อเมื่อคุณจำเป็นต้องใช้จริงๆ
James Goodwin

6

ฉันมีข้อผิดพลาดเดียวกันนี้ แต่เป็นเพราะฉันเพิ่งเปลี่ยนจากการใช้ v4 เป็น v13 ดังนั้นสิ่งที่ฉันต้องทำคือทำความสะอาดโครงการ


1
มีข้อผิดพลาดเดียวกันหลังจากอัปเกรด Intellij การทำความสะอาดโครงการแก้ไขปัญหา
Vlad Spreys

5

ฉันมีข้อผิดพลาดเดียวกันในโครงการเดิม ความผิดของฉันคือการสนับสนุนไลบรารีถูกรวมสองครั้ง: เมื่ออยู่ใน google-play-services lib และอีกอันเป็นสแตนด์อโลน

นี่คือวิธีที่ฉันแก้ไขมัน:

BAD build.gradle:

dependencies {
   compile files('libs/android-support-v4.jar') 
   compile files('libs/core-2.2.jar')
   compile files('libs/universal-image-loader-1.8.5-with-sources.jar')
   compile 'com.google.android.gms:play-services:3.2.65'
}

GOOD build.gradle:

dependencies {
   // compile files('libs/android-support-v4.jar')  // not needed 
   compile files('libs/core-2.2.jar')
   compile files('libs/universal-image-loader-1.8.5-with-sources.jar')
   compile 'com.google.android.gms:play-services:3.2.65'
}

หวังว่าจะช่วยให้ใครบางคน :-)


3

ฉันกำลังใช้งานcom.google.android.gms:play-services-analytics:8.3.0และ android-support-v13.jarไม่exclude module: 'support-v4'สามารถทำงานได้

สิ่งที่ใช้ได้ผลสำหรับฉันคือการใช้android-support-v13สิ่งประดิษฐ์มากกว่าandroid-support-v13.jarไฟล์

เช่นแทน

dependencies {
compile ('com.google.android.gms:play-services-analytics:8.3.0')
compile files('libs/android-support-v13.jar')

}

ฉันใช้

dependencies {
compile ('com.google.android.gms:play-services-analytics:8.3.0')
compile ('com.google.android:android-support-v13')

}


3

ในกรณีของฉันปัญหาเกิดจากรุ่นที่ไม่สอดคล้องกัน :

Build tools 25
compileSdk 24
targetSdk 24
Support library 24

วิธีแก้ปัญหานั้นง่าย: ทำให้ทุกอย่างเป็นเวอร์ชั่น 25


3

คล้ายวิธีการแก้ไขปัญหา Dex

gradle.build ประกอบด้วย:

compile files('libs/httpclient-4.2.1.jar')
compile 'org.apache.httpcomponents:httpclient:4.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'

ปัญหาได้รับการแก้ไขเมื่อฉันลบออก

compile files('libs/httpclient-4.2.1.jar') 

gradle ของฉันตอนนี้ดูเหมือนว่า:

apply plugin: 'com.android.application'

android {

compileSdkVersion 24
buildToolsVersion "24.0.3"

defaultConfig {
    applicationId "com.mmm.ll"
    minSdkVersion 16
    targetSdkVersion 24
    useLibrary  'org.apache.http.legacy'
}

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
}

dependencies {

compile 'com.google.android.gms:play-services:6.1.+'
compile files('libs/PayPalAndroidSDK.jar')
compile files('libs/ksoap2-android-assembly-3.0.0-RC.4-jar-with-dependencies.jar')
compile files('libs/picasso-2.1.1.jar')
compile files('libs/gcm.jar')
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'org.apache.httpcomponents:httpclient:4.5'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}

มีความซ้ำซ้อนในไฟล์ JAR และโครงการ gradle ที่คอมไพล์แล้ว

ดังนั้นจึงควรมองหาไฟล์อ้างอิงและไฟล์ jar ที่มีคลาสเดียวกัน

และลบความซ้ำซ้อน
สิ่งนี้ใช้ได้สำหรับฉัน


2

หากคุณได้นำเข้าโครงการของคุณจากคราส

1. The select project 
2. Go to File -> **Project Structure**
3. Select app in **module** section on left hand panel
4. Select **Dependency** tab
5. Your able to see jars you have added in eclipse project for v4 and v13.
6. Remove that jar by clicking on minus sign at bottom after selection
7. Click on Plus sign select **Library Dependency** 
8. Choose V4 and V13 if added
9. Press Ok and Clean and Rebuild your project

สถานการณ์ที่ฉันเผชิญหลังจากอิมพอร์ตโปรเจ็กต์ Eclipse ไปยัง Android studio

หวังว่านี่จะช่วย ..


2

นี่เป็นปัญหาที่น่ารำคาญซึ่งอาจต้องใช้เวลาพอสมควรในการค้นหารูทเคส วิธีที่คุณควรดำเนินการต่อคือ @CommonsWare answer

ฉันประสบปัญหานี้เมื่อเร็ว ๆ นี้และพบว่ามันยากที่จะแก้ไข

ปัญหาของฉันคือฉันถูกรวมไลบรารีโดยรุ่น "+" ใน build.gradle รุ่นล่าสุดของห้องสมุดมีหนึ่งใน dex และปังที่เก่ากว่า

ฉันเปลี่ยนกลับไปเป็นห้องสมุดรุ่นเก่ากว่าและแก้ไขมัน

มันเป็นการดีที่จะเรียกใช้ Android ของคุณอ้างอิงและดูสิ่งที่เกิดขึ้นจริง มันยังดีที่จะค้นหาในโฟลเดอร์สร้างของคุณ

เหนือสิ่งอื่นใดAndroid Studio 2.2มีคุณสมบัติในการสร้างเพื่อติดตามปัญหานี้

Happy Coding Guys


2

ใน Android Studio ให้ไปที่ build.gradle ของคุณ (ตรวจสอบทั้งโครงการและโมดูลไฟล์ build.gradle) และค้นหาการอ้างอิงที่ซ้ำกัน

ลบที่โครงการของคุณไม่ต้องการ



1

ฉันลบคอมไพล์ 'com.android.support:support-v4:18.0.+' โดยอ้างอิงและมันใช้งานได้


2
นี่ควรเป็นความคิดเห็นมิฉะนั้นคุณควรอธิบายให้ดีกว่านี้
Anirudh Sharma

1

ฉันสามารถแก้ปัญหาในโครงการเนทีฟแบบโต้ตอบได้โดยการเพิ่ม

configurations {
        all*.exclude group: 'com.android.support', module: 'support-compat'
        all*.exclude group: 'com.android.support', module: 'support-core-ui'
    }

ในตอนท้ายของไฟล์ android \ app \ build.gradle


0

ในที่สุดฉันแก้ไขมันการปรับเปลี่ยนแอตทริบิวต์เหล่านี้ในโมดูลไฟล์ gradle

  1. compileSdkVersion 25
  2. targetSdkVersion 25
  3. รวบรวม 'com.android.support:appcompat-v7:+'
  4. รวบรวม 'com.android.support:recyclerview-v7:+'

0

ฉันมีปัญหาเดียวกันเมื่อเพิ่มreact-native-paletteลงในโครงการของฉันนี่คือแผนภูมิการพึ่งพาของฉัน:

./gradlew app:dependencies
+--- project :react-native-palette
|    +--- com.facebook.react:react-native:0.20.+ -> 0.44.2
|    |    +--- javax.inject:javax.inject:1
|    |    +--- com.android.support:appcompat-v7:23.0.1
|    |    |    \--- com.android.support:support-v4:23.0.1
|    |    |         \--- com.android.support:support-annotations:23.0.1 -> 24.2.1
...
|    \--- com.android.support:palette-v7:24.+ -> 24.2.1
|         +--- com.android.support:support-compat:24.2.1
|         |    \--- com.android.support:support-annotations:24.2.1
|         \--- com.android.support:support-core-utils:24.2.1
|              \--- com.android.support:support-compat:24.2.1 (*)
+--- com.android.support:appcompat-v7:23.0.1 (*)
\--- com.facebook.react:react-native:+ -> 0.44.2 (*)

ฉันลอง solutons จำนวนมากและไม่สามารถแก้ไขได้จนกว่าจะเปลี่ยนcom.android.support:appcompatรุ่นandroid/app/build.gradleฉันหวังว่านี่จะช่วยได้:

dependencies {
    compile project(':react-native-palette')
    compile project(':react-native-image-picker')
    compile project(':react-native-camera')
    compile fileTree(dir: "libs", include: ["*.jar"])
    // compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.android.support:appcompat-v7:24.2.1"
    compile "com.facebook.react:react-native:+"
}

ดูเหมือนว่าหลายรายการไม่ใช่ปัญหาใหญ่เวอร์ชันไม่ตรงกัน


0

ทำให้มันcompile file('...')เกิดข้อขัดแย้งโดยการเพิ่ม minSdkVersion เป็น 21 และเปิดใช้งาน multidex ไม่แน่ใจว่านี่เป็นทางออกที่ดีที่สุด แต่วิธีเดียวที่ฉันจะทำให้มันทำงานได้ในกรณีของฉัน

หมายเหตุ: compile file('...')ดูเหมือนว่าคุณไม่สามารถใส่excludeประโยคได้ดังนั้นจึงไม่มีตัวเลือก


0

ฉันมีปัญหาเดียวกันและวิธีแก้ไขของฉันเปลี่ยนรุ่นการสนับสนุน '27. + '(27.1.0) เป็น '27 .0.1'


0

ฉันมีปัญหาเดียวกัน ในโครงการของฉันฉันมีการอ้างอิงต่อไปนี้:

  • AppCompat-v7
  • หุ่นยนต์สนับสนุน v13

สำหรับเหตุผลที่สืบทอดมานั้นแอปคอมแพ็กนั้นมาจาก Google Maven repo ในขณะที่การสนับสนุน Android นั้นเป็น. jar ท้องถิ่น

เมื่อฉันคิดออกและแทนที่การอ้างอิงในท้องถิ่นนี้ด้วยการอ้างอิง Maven มันก็แก้ไขปัญหาการสร้างของฉัน

นี่คือส่วนต่างของแอพ / build.gradle ของฉัน:

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันแก้ไขปัญหาทั้งหมดของฉันโดยเพิ่มสิ่งนี้ลงใน project.properties

cordova.system.library.7=com.android.support:appcompat-v7:27.1.0

0

ได้รับข้อผิดพลาดดังต่อไปนี้

การดำเนินการล้มเหลวสำหรับงาน ': แอป: transformDexArchiveWithDexMergerForDebug'

com.android.build.api.transform.TransformException: com.android.dex.DexException: ไฟล์ dex หลายไฟล์กำหนด Landroid / support / constraint / ConstraintSet $ ​​1

การแก้ไข: ไปที่ Build -> Clean Project


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