Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple dex files define Landroid/support/v4/os/ResultReceiver; #50

Closed
ivanchaukn opened this issue Mar 14, 2019 · 6 comments
Closed
Labels
triage Further information is requested

Comments

@ivanchaukn
Copy link

I have been getting this error when I include file_picker in my project and would like some help! I tried removing file_picker and seems like everything builds successfully.

Dex: Error converting bytecode to dex:                                  
Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver;
    UNEXPECTED TOP-LEVEL EXCEPTION:                                     
    com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver;
                                                                        
com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)     
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
        at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Dex: Error converting bytecode to dex:                                  
Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver$MyResultReceiver;
    UNEXPECTED TOP-LEVEL EXCEPTION:                                     
    com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver$MyResultReceiver;
                                                                        
com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver$MyResultReceiver;
        at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:661)
        at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:616)
        at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:598)
        at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
        at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)     
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:61)
        at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:36)
        at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
                                                                        
FAILURE: Build failed with an exception.                                
                                                                        
* What went wrong:                                                      
Execution failed for task ':app:transformDexArchiveWithDexMergerForDevelopmentDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver$MyResultReceiver;
                                                                        
dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

  intl: ^0.15.6
  intl_translation: ^0.17.0
  google_sign_in: ^3.0.0
  firebase_core: ^0.2.5+1
  firebase_analytics: ^1.0.6
  firebase_auth: ^0.6.6
  firebase_messaging: ^2.1.0
  firebase_database: ^1.0.5
  firebase_storage: ^1.0.4
  firebase_performance: ^0.0.8+1
  cloud_firestore: ^0.8.2+3
  shared_preferences: ^0.4.2
  charts_flutter: ^0.4.0
  flutter_circular_chart: ^0.1.0
  fcharts: ^0.0.9
  modern_charts: ^0.1.16
  image: ^2.0.4
  cached_network_image: ^0.5.1
  transparent_image: ^0.1.0
  image_picker: ^0.4.12+1
  file_picker: ^1.3.1
  open_file: ^1.2.0

  recase: ^2.0.0+1
  random_string: ^0.0.2
  flutter_linkify: ^1.1.1

  flutter_launcher_icons: ^0.7.0
  flushbar: ^0.9.2
  http: ^0.12.0
  url_launcher: ^4.0.3
  path_provider: ^0.4.1
  package_info: ^0.3.2
  device_info: ^0.3.0

  cupertino_icons: ^0.1.0
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        applicationId "com.xxxxxxxxx"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 17
        versionName "0.7.3"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release

            minifyEnabled true
            useProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    flavorDimensions "flavor-type"

    productFlavors {
        development {
            dimension "flavor-type"
            applicationIdSuffix ".dev"
            versionNameSuffix "-dev"

        }
        production {
            dimension "flavor-type"
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

apply plugin: 'com.google.gms.google-services'
@miguelpruivo
Copy link
Owner

miguelpruivo commented Mar 14, 2019

Hi. This doesn’t seem to be directly related to the file_picker package but likely to some conflict with other dependencies. Did you run flutter clean?

Also try to remove the .pub_cache folder that is probably hidden in your home folder.

@ivanchaukn
Copy link
Author

I ran flutter clean before compiling every time and tried removing .pub_cache but unfortunately still doesn't work

@miguelpruivo
Copy link
Owner

miguelpruivo commented Mar 14, 2019

There's not enough details so that I can help you. The exception doesn't seem to point to any issue with the package itself.

Can you try with a previous version (eg. 1.2.0)?

Edit: Check the accepted answer in this SO question

@miguelpruivo miguelpruivo added the triage Further information is requested label Mar 14, 2019
@ivanchaukn
Copy link
Author

ivanchaukn commented Mar 14, 2019

I narrow down the problem to the firebase_core plugin and it seems like that's what's causing the conflict. I tested it in a brand new project to weed out any potential external factors. I love your plugin but it will be a pain if I can't use it with the firebase plugins.

name: test
description: A new Flutter application.

version: 1.0.0+1

environment:
  sdk: ">=2.0.0-dev.68.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

  firebase_core: ^0.2.5+1
  file_picker: ^1.3.1

dev_dependencies:
  flutter_test:
    sdk: flutter

@miguelpruivo
Copy link
Owner

Glad that you’ve found it. Therefore I’m closing this issue.

Feel free to re-open if you are still having problems.

@ivanchaukn
Copy link
Author

Do you think it's something you can take a look? I have been trying to fix this issue for couple days and would like to get my app running.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants