2016-07-29 2 views
0

Я хотел бы использовать библиотеку Apache Commons Math для вычисления стандартного отклонения, а не писать свой собственный метод, но я не смог избавиться от этой ошибки:Android Studio Commons Math «NoClassDefFoundError»

FATAL EXCEPTION: main 
Process: io.github.hactarce.qtimer, PID: 25294 
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/discovery/tools/DiscoverClass; 
    at org.apache.commons.math.stat.DescriptiveStatistics.newInstance(DescriptiveStatistics.java:91) 
    at ... 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.discovery.tools.DiscoverClass" on path: DexPathList[[dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-support-annotations-24.0.0_9d3ba58e638ed02faa84bf39a48fe2d24bde6b2a-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_9-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_8-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_7-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_6-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_5-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_4-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_3-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_2-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_1-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-slice_0-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-me.zhanghai.android.materialprogressbar-library-1.1.6_3f4dfaff6ac84c0f0b41e456c4c7ea77b367a4b0-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-internal_impl-24.0.0_92a109cb571bd624e4bea6328895341c772d7c6c-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-commons-math-20040218.045431_cdd6a0543f856d0d318fbe7a891815a73a580ce9-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-com.android.support-support-vector-drawable-24.0.0_2a3a8f3ca104420ae4ace8cc58b02d413c7612ea-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-com.android.support-support-v4-24.0.0_bffc8401f241a00ed2f701ca43e6dffa2f80398d-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-com.android.support-recyclerview-v7-24.0.0_2c37df8ad6003e99ec2537a49be829f52468f887-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-com.android.support-appcompat-v7-24.0.0_73746d492da138f16fa685b4e64eeb56d351948f-classes.dex", dex file "/data/data/io.github.hactarce.qtimer/files/instant-run/dex/slice-com.android.support-animated-v 

Моего Gradle файл:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 'Google Apis:Google Apis:23' 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "io.github.hactarce.qtimer" 
     minSdkVersion 18 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      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.afollestad.material-dialogs:core:0.8.6.0' 
    compile 'com.afollestad.material-dialogs:commons:0.8.6.0' 
    compile 'commons-math:commons-math:20040218.045431' 
} 

Я видел много других ответов о подобных ошибках, но ни один из них не похож, чтобы помочь. Заранее спасибо. :)

+0

Ничего себе, это ** старый ** версия. 2004! Ну, похоже, что ему нужно «commons-discovery», поэтому вам нужно также добавить эту зависимость. Чтобы соответствовать тому, что у вас есть, вам, скорее всего, понадобится 'commons-discovery: commons-discovery: 20040218.194635'. Учитывая, что он имеет ту же самую * (очень старую) дату, они, вероятно, подходят друг другу. --- Предложение: переход к чему-то более актуальному. Я имею в виду, Android тогда даже не существовал! – Andreas

+0

Yikes ... может быть, я сам получу их. : s – Hactar

+0

Зачем переоценивать себя? Просто используйте [более новую версию] (http://commons.apache.org/proper/commons-math/index.html), например. 'Org.apache.commons: Обще-math3: баночка: 3.6.1'. Версия 3.6.1 была выпущена в 2016-03-21. – Andreas

ответ

0

Вы не должны использовать банку, указанную в файле сборки. Это не официально выпущенная версия. Это неизданная сборка снимков, подготовленная до версии 1.0 Commons Math. Как указано в комментариях, вы должны перейти к выпущенной версии, предпочтительно 3.6.1.

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