旧设备上的NoClassDefFound错误

时间:2015-08-01 23:59:10

标签: java android macos android-studio noclassdeffounderror

由于几周后我无法在旧设备上运行我的应用程序。它可以在我的OnePlus One上运行,或者在SGS5上运行,但在我的Galaxy S3上运行不正常。

当我通过Android Studio调试应用程序时,它会为刚刚创建的自定义类抛出NoClassDefFoundError。

java.lang.NoClassDefFoundError: com.appsbv.sample.ComponentsEndpoint

你们知道如何解决这个问题吗? 附:我在OS X上运行Android Studio 1.3

在我的gradle文件下面:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion '22.0.0'
    defaultConfig {
        applicationId "com.appsbv.sample"
        minSdkVersion 14
        targetSdkVersion 22
        versionCode 17
        versionName "7.0"
        multiDexEnabled true
    }
    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    lintOptions {
        abortOnError false
    }
    productFlavors {
    }
}

repositories {
    // for downloading polypicker dependency cwac-camera
    maven { url 'https://repo.commonsware.com.s3.amazonaws.com' }
    // Goodbye Maven Central
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile project(':library')
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'org.parceler:parceler:0.2.16'
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
    compile 'in.srain.cube:grid-view-with-header-footer:1.0.11'
    compile 'com.tonicartos:stickygridheaders:1.0.1'
    compile 'com.parse.bolts:bolts-android:1.1.3'
    compile 'com.soundcloud.android:android-crop:1.0.0@aar'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile files('src/main/java/com/appsbv/Parse-1.9.1.jar')
    compile 'com.github.jaydeepw:poly-picker:v1.0.14'
}

ComponentEndpoint类看起来像这样:

public class ComponentsEndpoint implements Endpoint {
    private static final String PROTOCOL = "http://";
    private static final String BASE = ".appsbv.nl/v1";
    private String url;
    private String service;
    public void setService(String serv) {
        service = serv;
        url = PROTOCOL + serv + BASE;
    }
    @Override
    public String getName() {
        return service;
    }
    @Override
    public String getUrl() {
        if (url == null) {
            throw new IllegalStateException("Illegal URL.");
        }
        return url;
    }
}

1 个答案:

答案 0 :(得分:0)

将此添加到您的build.gradle中,您将很高兴

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