Android Studio:将字节码转换为 dex:Multiple dex 文件时出错 define Ljavax/mail/internet/ParameterList$ToStringBuffer;

Android Studio : Error converting bytecode to dex:Multiple dex files define Ljavax/mail/internet/ParameterList$ToStringBuffer;

我最近升级到 Android Studio 3.0.1,当 运行 程序出现此错误时:

我的build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
defaultConfig {
    applicationId "com.mrunal.myadmin"
    minSdkVersion 19
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
    multiDexEnabled true

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

dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
}
}
 dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.google.firebase:firebase-auth:11.0.4'
implementation 'com.google.firebase:firebase-database:11.0.4'
implementation 'com.google.firebase:firebase-storage:11.0.4'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:multidex:1.0.1'
implementation 'javax.mail:javax.mail-api:1.5.3'
implementation 'com.android.support:support-vector-drawable:26.1.0'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation files('libs/mail.jar')
 }
apply plugin: 'com.google.gms.google-services'

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.felicity.myadmin">
<uses-permission android:name="android.permission.INTERNET" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:name="android.support.multidex.MultiDexApplication"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Email_Activity"></activity>
</application>
</manifest>

我已经试过了

我在 SO 上搜索了很多相关问题,但没有任何帮助。 请任何人帮助我

问题已解决,

我刚改implementation 'com.android.support:multidex:1.0.1'

implementation 'com.android.support:multidex:1.0.2' 并且有效

更新您的 multidex 只是解决您的问题的临时方法。如果您使用 proguard 发布 apk,同样的问题会再次困扰您。

问题可能是因为您使用的是同一个库:

implementation 'javax.mail:javax.mail-api:1.5.3'

implementation files('libs/mail.jar')

只用一个。

你也不需要使用:

implementation files('libs/mail.jar')

如果您正在使用:

implementation fileTree(include: ['*.jar'], dir: 'libs')

您可能不需要为您的 apk 使用 multidex,因为您的依赖项不超过 65k 限制。