久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

為什么我在運行我的 Android 項目時得到重復的類

Why I#39;m Getting Duplicate Class When Running My Android Project(為什么我在運行我的 Android 項目時得到重復的類)
本文介紹了為什么我在運行我的 Android 項目時得到重復的類的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在為我的應用添加導航抽屜.我遇到了錯誤.應用程序 gradle 同步得很好.但是當我運行應用程序時,我得到了一堆重復的類錯誤.我認為這可能是因為我添加了沖突的依賴項,并且我使用的是 v7 28.0.0 并且一些錯誤提到了 app: v4.我在網上看到的所有示例都使用 v7 28.0.0,盡管我在使用 v4 的 main_activity.xml 中有這個.不知道是否與錯誤有關.android.support.v4.widget.DrawerLayout

I'm in the process of adding a navigation drawer to my app. and I'm getting errors. The app gradle synchs just fine. but when I run the app I get a bunch of duplicate class error. I think it might be because I have conflicting dependencies added and that I'm using v7 28.0.0 and some of the errors mention app: v4. all the examples I've seen online use v7 28.0.0 eventhough I have this in main_activity.xml which uses v4. don't know if it's got something to do with the error. android.support.v4.widget.DrawerLayout

Caused by: com.android.ide.common.workers.WorkerExecutorException: 1 exception was raised by workers:
java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActionBarDrawerToggle found in modules classes.jar (com.android.support:support-core-ui:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActionBarDrawerToggle$Delegate found in modules classes.jar (com.android.support:support-core-ui:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActionBarDrawerToggle$DelegateProvider found in modules classes.jar (com.android.support:support-core-ui:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActionBarDrawerToggle$SlideDrawable found in modules classes.jar (com.android.support:support-core-ui:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActivityCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActivityCompat$1 found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)
Duplicate class android.support.v4.app.ActivityCompat$OnRequestPermissionsResultCallback found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v4:24.0.0)

gradle 文件

apply plugin: 'com.android.application'

android {    
    
    compileSdkVersion 28
    defaultConfig {
        applicationId "org.pctechtips.netdroid"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 8
        versionName "1.7"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled = false
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
            shrinkResources false
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable false

        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    /*androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
                        exclude group: 'com.android.support', module: 'support-annotations'
                        firebase
                        implementation 'com.google.firebase:firebase-core:10.2.1'
                    })*/
    //    compile 'com.android.support:appcompat-v7:25.3.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    /*google play plugin for adMob*/
    implementation 'com.google.android.gms:play-services:10.2.1'
    implementation 'commons-net:commons-net:3.6'
    implementation 'org.samba.jcifs:jcifs:1.3.3'
}

推薦答案

異常的意思是,在2個或多個不同的依賴中存在重復的類,編譯器將無法區分應該在run-time 并拋出異常.

The exception means, There were duplicated classes in 2 or more different dependencies and the compiler wouldn't be able to distinguish which of them should be used at run-time and the exception was thrown.

大多數情況下,當您嘗試導入帶有所需庫的模塊時會發生重復性.(傳遞依賴)

Most often, Duplicity happens when you are trying to import modules that carrying their required libraries. (transitive dependencies)

您必須從 build.gradle 中的庫中排除重復的類.如 Log 所示,support-core-uisupport-compat 模塊有重復的類.

You have to exclude duplicated classes from libraries in the build.gradle. As Log shows, support-core-ui and support-compat modules have duplicated classes.

apply plugin: 'com.android.application'

android {
    ...
    defaultConfig {
        ...
    }
    buildTypes {
        ...
    }
    configurations {
        all { // You should exclude one of them not both of them 
            exclude group: "com.android.support", module: "support-core-ui"
            exclude group: "com.android.support", module: "support-compat"
        }
    }
}

有時你不需要排除任何東西,你只需要將導入的模塊更改為不帶依賴關系的模塊.

其他情況導致類重復是當您將*.jar添加到項目libs目錄時.因此,如果它們沒有在項目中開始使用,則需要刪除它們.

Other situation that causes duplicated classes is when you have added *.jar to the project libs directory. Therefore, You need to delete them if they are not begin used in the project.

project->app->libs->*.jar

我看到使用這兩行提到的一些解決方案可以解決問題但是如果您已遷移到 Androidx,它將默認啟用.

I see there are some solutions mentioned using these 2 lines will resolve the problem But if you've migrated to Androidx it would be enabled by default.

android.useAndroidX=true
android.enableJetifier=true

噴射器是

Jetifier 工具將支持庫依賴的庫遷移到依賴而是等效的 AndroidX 包.該工具可讓您遷移直接使用單個庫,而不是使用 Android gradle與 Android Studio 捆綁在一起的插件.

Jetifier tool migrates support-library-dependent libraries to rely on the equivalent AndroidX packages instead. The tool lets you migrate an individual library directly, instead of using the Android gradle plugin bundled with Android Studio.

有關更多信息,請查看排除傳遞依賴項

隨著應用范圍的擴大,它可以包含許多依賴項包括直接依賴和傳遞依賴(庫您的應用程序的導入庫所依賴的).排除及物不再需要的依賴項,可以使用 exclude關鍵詞

As an app grows in scope, it can contain a number of dependencies including direct dependencies and transitive dependencies (libraries which your app's imported libraries depend on). To exclude transitive dependencies that you no longer need, you can use the exclude keyword

如果您在排除類時遇到問題,請查看此線程:如何排除...

If you have problems excluding classes, check this thread: How do I exclude...

這篇關于為什么我在運行我的 Android 項目時得到重復的類的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 91亚洲一区 | 久久精品91久久久久久再现 | 一区二区日韩 | 国产高潮好爽受不了了夜夜做 | 国产精品a久久久久 | 成人啊啊啊 | 在线精品一区二区三区 | 午夜在线小视频 | 黄色三级在线播放 | 亚洲欧美在线一区 | 久久精品国产亚洲一区二区 | 日韩一区二区久久 | 久久久久国产精品 | 日本成人在线播放 | 国产不卡一区 | 国产一区在线免费观看视频 | 亚洲一二三区精品 | 男女羞羞视频在线 | 欧美成人在线网站 | 欧美乱操| 一区二区高清 | 欧美一区成人 | 国产激情91久久精品导航 | 黄色片免费看视频 | 青青久在线视频 | 亚洲自拍偷拍av | 碰碰视频 | 黄a在线观看| 日韩中文在线视频 | 欧美激情精品久久久久 | 国产精品久久久久久久久久久免费看 | 成人h动漫精品一区二区器材 | 午夜在线小视频 | 亚洲精品2 | 97狠狠干 | 国产一区二区三区高清 | 成人亚洲片 | 91精品国产麻豆 | 韩日在线观看视频 | 国产成人综合在线 | 久久99精品久久久久久 |