When making the build to my application I get these errors:
Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at
https://developer.android.com/tools/building/multidex.html
Error:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]:
65536
and several more, according to investigate this error is because the limit of methods was passed, and try to enable the multidex but I still get the same error, in fact and remove all dependencies and follow the same error. This is my build.gradle with only a few dependencies
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.4'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.getkeepsafe.dexcount'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
flavorDimensions "default"
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId 'com.sitiorandom.muyanda'
minSdkVersion 19
targetSdkVersion 26
versionCode 2
versionName '0.1.1'
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Deprecated. Used by net.openid:appauth
manifestPlaceholders = [
'appAuthRedirectScheme': 'host.exp.exponent'
]
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize System.getenv("DISABLE_DEX_MAX_HEAP") ? null : "8g"
}
productFlavors {
// Define separate dev and prod product flavors.
dev {
// dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
// to pre-dex each module and produce an APK that can be tested on
// Android Lollipop without time consuming dex merging processes.
minSdkVersion 19
}
devRemoteKernel {
minSdkVersion 19
}
dev19 {
// For debugging / development on older SDK versions. Increases build
// time so use 'dev' if not running on older SDKs.
minSdkVersion 19
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion 19
}
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}
}
signingConfigs {
debug {
storeFile file('../debug.keystore')
}
}
lintOptions {
abortOnError false
}
packagingOptions {
pickFirst "**"
}
}
// Don't use modern jsc-android since it still has some critical bugs that
// crash applications when the string for the JS bundle is loaded and when
// locale-specific date functions are called.
// configurations.all {
// resolutionStrategy {
// force 'org.webkit:android-jsc:r216113'
// }
// }
apply from: 'expo.gradle'
dependencies {
implementation('commons-validator:commons-validator:1.4.1') {
exclude group: 'commons-collections', module: 'commons-collections'
}
compile 'com.android.support:multidex:1.0.3'
annotationProcessor 'com.jakewharton:butterknife:7.0.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile fileTree(dir: 'libs', include: ['*.jar'])
// Our dependencies
//compile 'com.android.support:appcompat-v7:26.0.1'
// Our dependencies from ExpoView
// DON'T ADD ANYTHING HERE THAT ISN'T IN EXPOVIEW. ONLY COPY THINGS FROM
EXPOVIEW TO HERE.
//compile 'com.android.support:appcompat-v7:26.0.1'
/*compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile('com.facebook.android:audience-network-sdk:4.22.1') {
exclude module: 'play-services-ads'
}
provided 'org.glassfish:javax.annotation:3.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.amplitude:android-sdk:2.9.2' // Be careful when upgrading!
Upgrading might break experience scoping. Check with Jesse. See
Analytics.resetAmplitudeDatabaseHelper
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile "com.raizlabs.android:DBFlow-Core:2.2.1"
compile "com.raizlabs.android:DBFlow:2.2.1"
compile "com.madgag.spongycastle:core:1.53.0.0"
compile "com.madgag.spongycastle:prov:1.53.0.0"
debugCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
// debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-
beta1'
compile 'com.facebook.device.yearclass:yearclass:1.0.1'
compile 'commons-io:commons-io:1.3.2'
compile 'me.leolin:ShortcutBadger:1.1.4@aar'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.theartofdev.edmodo:android-image-cropper:2.4.7'
compile 'com.yqritc:android-scalablevideoview:1.0.1'
compile 'commons-codec:commons-codec:1.10'
compile 'com.segment.analytics.android:analytics:4.3.0'
compile 'com.google.zxing:core:3.2.1'
compile 'net.openid:appauth:0.4.1'
compile 'com.airbnb.android:lottie:2.2.0'
compile 'io.branch.sdk.android:library:2.6.1'
compile('io.nlopez.smartlocation:library:3.2.11') {
transitive = false
}
compile 'com.android.support:exifinterface:26.0.1'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1'
compile 'com.squareup.okhttp3:okhttp-ws:3.4.1'
compile 'com.squareup.okio:okio:1.9.0'
// Testing
androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.1'
// We use a modified build of com.android.support.test:runner:1.0.1.
Explanation in maven-test/README
androidTestCompile 'com.android.support.test:runner:1.0.1'
androidTestCompile 'com.android.support:support-annotations:26.0.1'
androidTestCompile 'com.google.code.findbugs:jsr305:3.0.0'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-
v18:2.1.1'
androidTestCompile 'com.azimolabs.conditionwatcher:conditionwatcher:0.2'
*/
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile('host.exp.exponent:expoview:27.0.0@aar') {
transitive = true
}
//compile('host.exp.exponent:expoview:27.0.0@aar')
}
// This has to be down here for some reason
apply plugin: 'com.google.gms.google-services'
And the mainApplication
package host.exp.exponent;
import android.content.Context;
import android.support.multidex.MultiDex;
import com.facebook.react.ReactPackage;
import java.util.Arrays;
import java.util.List;
import expolib_v1.okhttp3.OkHttpClient;
// Needed for 'react-native link'
// import com.facebook.react.ReactApplication;
public class MainApplication extends ExpoApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
public boolean isDebug() {
return BuildConfig.DEBUG;
}
// Needed for 'react-native link'
public List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
// Add your own packages here!
// TODO: add native modules!
// Needed for 'react-native link'
// new MainReactPackage()
);
}
@Override
public String gcmSenderId() {
return getString(R.string.gcm_defaultSenderId);
}
@Override
public boolean shouldUseInternetKernel() {
return BuildVariantConstants.USE_INTERNET_KERNEL;
}
public static OkHttpClient.Builder okHttpClientBuilder(OkHttpClient.Builder
builder) {
// Customize/override OkHttp client here
return builder;
}
}