久久久久久久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 庫的傳遞依賴)
主站蜘蛛池模板: 久久国产欧美一区二区三区精品 | 波多野结衣一区二区三区在线观看 | 狠狠干网| 看片网站在线 | 天堂资源最新在线 | 久久久久久久久久爱 | 亚洲一区二区久久 | 日韩一区中文字幕 | h在线免费观看 | 国产亚洲第一页 | 97人人澡人人爽91综合色 | 亚洲综合大片69999 | 国产一级在线视频 | 99久久精品免费看国产四区 | 成人久久久 | 欧美日韩中文字幕在线 | 日本a∨精品中文字幕在线 亚洲91视频 | 亚洲精品在线播放 | 国产剧情一区二区三区 | 亚洲欧美日韩一区二区 | 青青草一区 | 91资源在线观看 | 黄色毛片在线看 | 伊人久久精品 | 国产三级精品视频 | 日本又色又爽又黄的大片 | 亚洲日本一区二区三区四区 | 91精品国产综合久久久久久丝袜 | 国产成人精品免费视频大全最热 | 一区二区三区高清 | 亚洲福利在线观看 | 盗摄精品av一区二区三区 | 91精品国产91综合久久蜜臀 | 1级毛片| 日韩国产免费观看 | 久久久久国产精品免费免费搜索 | 夜夜精品浪潮av一区二区三区 | 国产精品视频入口 | 丁香五月缴情综合网 | 欧美精选一区二区 | 99亚洲精品 |