Mam bibliotekę używam do testów Espresso, które po dodaniu do mojego projektu nie jestem w stanie skompilować moich testów.com.android.dex.DexIndexOverflowException na Android Studio 3.0
Gradle generuje ten błąd
Caused by: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$8.updateIndex(DexMerger.java:565)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:574)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:166)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:198)
co jest naprawdę dziwne, bo ja już multiDex włączona w moim projekcie
Mój projekt build.gradle
defaultConfig {
minSdkVersion 16
targetSdkVersion 21
versionName versionNameFromGitTagVia()
versionCode versionCodeFromJenkins()
multiDexEnabled true
testInstrumentationRunner "app.test.general.InstrumentationRunner" ...
}
dependencies {
...
androidTestImplementation project(':test-utils')
...
implementation 'com.android.support:multidex:1.0.2'
}
moja aplikacja Class
public class RiderApplication extends MultiDexApplication implements Application.ActivityLifecycleCallbacks,
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
....
}
AndroidManifest
<application
android:name=".RiderApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/MyAppTheme"
tools:replace="android:theme,android:icon">
Usuwanie biblioteki rozwiązuje problem
Wszelkie sugestie?
EDIT Próbowałem to naprawić na kilka sposobów, a ja odkryłem, że to tylko happends kiedy to biblioteki jako
androidTestImplementation
ale gdy używany jako zwykły
implementation
Błąd dex znika
Naprawdę dziwnie
EDIT
Zdarza się tylko z Gradle 3.0.1, jeśli wrócę do Gradle 2.3.3 problem ma bardziej
Utwórz klasę "Aplikacja". sprawdź logikę https://stackoverflow.com/a/33430306/3395198 –
Dzięki @IntelliJAmiya ale jak już wspomniałem moja aplikacja obsługuje już multidex – orelzion
ma klasę Application? –