在某些设备上运行但未在其他设备上运行时找不到Android类

时间:2016-11-18 14:46:10

标签: java android

当我在某些设备上运行我的应用程序时,例如我拥有的平板电脑,它可以正常工作,没有崩溃。

但是当我尝试在手机上运行它时,我收到一个错误,抱怨没有找到类定义。

java.lang.RuntimeException: An error occured while executing doInBackground()
    at android.os.AsyncTask$3.done(AsyncTask.java:300)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NoClassDefFoundError: org.apache.commons.io.output.StringBuilderWriter

以下是gradle文件中的依赖项

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':volley')
    compile files('libs/commons-io-2.4.jar')
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:design:25.0.0'
    compile 'com.android.support:support-v4:25.0.0'
    compile 'com.android.support:recyclerview-v7:25.0.0'
}

jar位于lib文件夹中。

Android版本: Phone: 4.4.2 Tablet: 5.1.1

SDK设置: compileSdkVersion: 25 minSdkVersion: 15 targetSdkVersion: 24

有人有什么想法吗?

2 个答案:

答案 0 :(得分:0)

  

有没有人有任何想法

您应该直接将apache commons添加到您的项目中:

compile "commons-io:commons-io:2.5"

答案 1 :(得分:0)

原来问题是multiDexing

我将此添加到defaultConfig

defaultConfig {
    multiDexEnabled true
}

并将其包含在我的dependencies

dependencies {
    compile 'com.android.support:multidex:1.0.1'
}