问题
I'm trying to generate a release build but im not able because of mutidex issues my project has all the multidex enabled and dependencies added
The error i'm receiving is :
Execution failed for task ':app:transformClassesWithMultidexlistForRelease
Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list.
and aslo:
Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: com.myapp.BuildConfig
回答1:
You are getting this error because you a have library module which has the same package name as the app module.
The solution would be to change package name of your library module. You can follow the accepted answer in this SO which describes how to change the package name in android studio.
回答2:
In my case It was happening when I try to run older project on new installed Android studio
The problem solved by running Build->Clean Project
回答3:
Error: Program type already present: somemodule/BuildConfig
Cause
In my case I had a (hidden) circular dependency which Android Studio did not find:
testutils/build.gradle
usesimplementation project(':somemodule')
somemodule/build.gradle
had `androidTestImplementation project(":testutils")
Solution
- in my case the second dependency was not neccessary so I removed it
回答4:
I solved this error enabling multiDexEnabled in the build.gradle
of my app's module:
defaultConfig {
...
...
...
multiDexEnabled true
}
回答5:
I had this problem after an android x upgrade in android studio. To fix this I went to File->Open and opened the android folder within my current flutter project. I was then able to go to Build->Clean Project as suggested by @Seymour Mammadli.
Hopefully this helps someone with the same issue.
回答6:
I encountered the issue building a Flutter application and I resolved it following the official guide: https://developer.android.com/studio/build/multidex
You simply have to:
0. (Android: Go to Refactor > Migrate to AndroidX
(If you are on a Flutter project, to migrate the module, you have to go to Tools > Flutter > Open for Editing in Android Studio
1. (Both) Modify the module-level build.gradle file to enable multidex and add the multidex library as a dependency, as shown here:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 28
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
2. (non-Flutter) If you do not override the Application class, edit your manifest file to set android:name in the <application> tag as follows:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
</manifest>
2. (Flutter) If you do not override the Application class, edit your manifest file to set android:name in the <application> tag as follows:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name=".App" >
...
</application>
</manifest>
3.(Flutter) Create a custom class under project/android/app/src/main/[java or kotlin folder]/[your/package/appName]
kotlin version: App.kt
package your.package.appName
import io.flutter.app.FlutterApplication
import android.content.Context
import androidx.multidex.MultiDex
class App : FlutterApplication() {
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
MultiDex.install(this)
}
}
java version: App.java
package your.package.appName;
import io.flutter.app.FlutterApplication;
import android.content.Context;
import androidx.multidex.MultiDex;
public class App extends FlutterApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
4. (Both) Celebrate if you did it!! :D
For more info, check out the official guide ;)
https://developer.android.com/studio/build/multidex
回答7:
Just goto tools>Flutter>Flutter clean in android studio. It'll resolve the issue. (If you are working with flutter)
来源:https://stackoverflow.com/questions/50717588/program-type-already-present-buildconfig