0

에 multidex를 추가 한 후이이 질문의 연속입니다 어떤 안드로이드 사양을 선언하지 않는 내 매니페스트에서 activies, 단편, UI 등 연결되어 있지 않습니다. 여기 내 매니페스트이다 com.android.dex.DexIndexOverflowException :계측 실행 내 응용 프로그램

의해 발생 : 방법 ID NOT IN [0, 0xffff가] : 65536

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.moduleName.sampleName" 
> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"> 
</uses-permission> 

</manifest> 

난 예외를 가졌다 아칸소

apply plugin: 'com.android.library' 
apply plugin: 'kotlin-android' 
apply plugin: 'kotlin-kapt' 

android { 
compileSdkVersion 26 
buildToolsVersion "26.0.2" 


packagingOptions { 
    exclude 'protobuf.meta' 
} 

testOptions { 
    unitTests { 
     includeAndroidResources = true 
    } 

} 
sourceSets { 
    test.java.srcDirs += ['build/generated/source/apt/test/debug'] 
} 

defaultConfig { 
    multiDexEnabled true 
    minSdkVersion 15 
    targetSdkVersion 26 
    versionCode 1 
    versionName "1.0" 

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 

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

} 

ext.daggerVersion = '2.11' 
ext.roomVersion = '1.0.0-rc1' 

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

implementation 'com.android.support:appcompat-v7:26.1.0' 
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' 
testImplementation "org.robolectric:robolectric:3.4.2" 
kaptTest "com.google.dagger:dagger-compiler:$daggerVersion" 
kaptAndroidTest "com.google.dagger:dagger-compiler:$daggerVersion" 


// RxJava 
implementation 'io.reactivex.rxjava2:rxjava:2.1.0' 
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' 

// Room 
implementation "android.arch.persistence.room:runtime:$roomVersion" 
implementation "android.arch.persistence.room:rxjava2:$roomVersion" 
kapt "android.arch.persistence.room:compiler:$roomVersion" 
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.1.51" 
androidTestImplementation "android.arch.persistence.room:testing:$roomVersion" 

// Dagger 
implementation "com.google.dagger:dagger:$daggerVersion" 
implementation "com.google.dagger:dagger-android:$daggerVersion" 
implementation "com.google.dagger:dagger-android-support:$daggerVersion" 
kapt "com.google.dagger:dagger-compiler:$daggerVersion" 
kapt "com.google.dagger:dagger-android-processor:$daggerVersion" 

implementation 'pl.charmas.android:android-reactive-location2:[email protected]' 
implementation 'com.google.android.gms:play-services-location:11.4.2' 
implementation 'com.google.android.gms:play-services-places:11.4.2' 

//Jackson 
implementation 'com.fasterxml.jackson.core:jackson-core:2.9.1' 
implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.0' 
implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.1' 

implementation 'com.android.support:multidex:1.0.2' 

} 

내 테스트 :

그래서, 여기 내 build.gradle 파일이 지금 모습입니다 전자 '패키지'테스트에서 잘 작동합니다. 'java.lang.NoClassDefFoundError가' 빈 테스트로 인해 실패 계측 실행 :

이 테스트를 실행 테스트가 실패를 실행 시작일 : 난 내 androidTest 클래스 패키지에 몇 가지 테스트를 실행하려고 할 때

는하지만 난이 얻을 모음곡. 이 문제의 시작은 위의 링크에

을 - 내가 잭슨 라이브러리를 추가 한 후 방법의 많은 양을 가지고 있었다, 그래서 나는 덱스 지원을 추가하고이 이것에 저를 얻었다 :

요약하면 문제는, 난 정말 어떻게 해결 해야할지 모르겠다 - 일부 depenendencies을 제외하고 단지 정말 중요한 떠나, 프로젝트를 청소하려고, 빌드 패키지를 삭제. 그들 중 누구도 일하지 않았습니다. 그것이 내가이 모듈에 코 틀린를 사용하고 중요한 경우

답변

0

당신은 AndroidManifest를에 MultiDexApplication를 추가 할 수 있습니다 : 당신이 응용 프로그램 클래스를 오버라이드 (override) 할 경우

<?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> 

이 MultiDexApplication을 확장 변경 (다음과 같이) 가능한 경우 :

public class MyApplication extends MultiDexApplication { ... } 

Check this Google official blog here for MultiDex support