2015-09-25 3 views
1

мое приложение, превышающее 64 тыс. Методов, поэтому iam должен реализовывать Multidex, изначально у меня была проблема, поскольку «локальный путь не существует», я исправил эту проблему, теперь сгенерировал градуированные классы1.dex и classes2.dex, но не работает в более низком, чем леденец ... он отлично работал на леденец, так как у него есть встроенная поддержка .error говорит, что «< 1-я деятельность> отсутствует в пути dex»Multidex: исключение класса исключение

после просмотра некоторых учебных пособий они сказали, что им придется сделайте изменение в 1.gradle 2.application class 3.manifest

У меня нет много знаний о классе приложений ..kindly guide me thanks

примечание: это импортированный проект из затмения.

любезно проверить build.gradle файл

apply plugin: 'com.android.application' 
android { 
defaultConfig { 
    compileSdkVersion 23 
    buildToolsVersion '23.0.1' 
    minSdkVersion 15 //lower than 14 doesn't support multidex 
    targetSdkVersion 23 


} 
dexOptions { 
    jumboMode = true 

    preDexLibraries = false 
    javaMaxHeapSize "2048M" 
} 
afterEvaluate { 
    tasks.matching { 
     it.name.startsWith('dex') 
    }.each { dx -> 
     if (dx.additionalParameters == null) { 
      dx.additionalParameters = ['--multi-dex'] 
     } else { 
      dx.additionalParameters += '--multi-dex' 
     } 
    } 
} 
sourceSets { 
    main { 
     manifest.srcFile 'AndroidManifest.xml' 
     java.srcDirs = ['src'] 
     resources.srcDirs = ['src'] 
     aidl.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     res.srcDirs = ['res'] 
     assets.srcDirs = ['assets'] 
    } 

    // Move the tests to tests/java, tests/res, etc... 
    instrumentTest.setRoot('tests') 

    // Move the build types to build-types/<type> 
    // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
    // This moves them out of them default location under src/<type>/... which would 
    // conflict with src/ being used by the main source set. 
    // Adding new build types or product flavors should be accompanied 
    // by a similar customization. 
    debug.setRoot('build-types/debug') 
    release.setRoot('build-types/release') 
} 
productFlavors { 
} 
buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 
dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
compile 'com.android.support:appcompat-v7:23.0.1' 
compile 'com.android.support:multidex:1.0.1' 
} 

ответ

1

Вы следовали учебник, который показывает, как вы могли бы добавить несколько DEX поддержки вручную до того Android Gradle плагин имел поддержку. С v0.14.0, все, что вам нужно сделать, это добавить:

android { 
    defaultConfig { 
    ... 
    multiDexEnabled true 
} 

И вы можете выбрать один из трех вариантов для вызова кода MultiDex. От MultiDexApplication documentation:

Приложение с минимальными возможностями MultiDex. Чтобы использовать унаследованную библиотеку multidex, есть 3 возможности:
- Объявите этот класс как приложение в вашем AndroidManifest.xml.
- Ваше приложение расширяет этот класс.
- У вашего переопределение приложений attachBaseContext начиная с

protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 

Не забудьте удалить afterEvaluate блок из вашего сценария сборки.

Убедитесь, что вы прочитали official documentation.

+0

http://pastebin.com/qkSwya4U, пожалуйста, перейдите по этой ссылке ..errors –

+0

@rajsharmashanmugam Попробуйте очистить свой проект, а затем снова построить. Если произошел сбой при сбое, ошибка «слишком много классов в -main-dex-list» означает, что у вас слишком много зависимостей. Попытайтесь удалить то, что вам не нужно. В последнем случае проверьте мой ответ [здесь] (http://stackoverflow.com/q/32753991/32781172#32781172) по аналогичной проблеме. –

Смежные вопросы