久久久久久久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 庫的傳遞依賴)
主站蜘蛛池模板: 欧美一级片在线 | 另类ts人妖一区二区三区 | 欧美一级淫片免费视频魅影视频 | 蜜桃视频一区二区三区 | 成人深夜福利视频 | 成人av一区| 国产草草影院 | 天天干夜夜草 | 午夜视频免费观看 | 欧美激情久久久 | 性欧美精品 | 一区二区欧美日韩 | 国产在线观看免费 | 国产精品成人一区二区 | 亚洲成人黄色 | 亚洲一区在线视频 | 国产精品一 | 成人午夜网站 | 一区二区高清视频 | 成人免费高清 | 久久精品黄色 | 欧美成人激情 | 色啪视频 | 黄色av免费 | 成人免费看片视频 | 日韩精品网 | 亚洲国产欧美日韩 | 黄色一级大片在线免费看产 | 欧美色综合天天久久综合精品 | 久国产 | 天堂8中文 | 伊人999 | 午夜在线免费观看 | 久久亚洲精品视频 | 午夜小视频在线观看 | 日本综合久久 | 亚洲一区欧美 | 一区二区三区四区视频 | 亚洲精品视频在线播放 | 午夜精品久久久久久久99 | 午夜视频网站 |