我在错误中度过了这么多天。 当我在Android中编译我的项目并在Android<中运行时5.0
Caused by: java.lang.NoClassDefFoundError: com.squareup.okhttp.Protocol[]
问题在于“NoClassDefFoundError”,因为我删除了很多部分,并且在另一个类中收到了相同的错误。
我已经清理了我的项目,使用了gradlew clean
。我用Google搜索了很多天。请帮帮我。
我在gradle中的依赖关系:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile files('libs/YouTubeAndroidPlayerApi.jar')
compile('com.facebook.android:facebook-android-sdk:[4,5)') {
exclude group: 'com.parse.bolts',
module: 'bolts-tasks'
exclude group: 'com.parse.bolts',
module: 'bolts-applinks';
}
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.google.apis:google-api-services-youtube:v3-rev145-1.20.0'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'info.hoang8f:fbutton:1.0.5'
compile 'com.victor:lib:1.0.1'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'com.google.code.gson:gson:2.4'
compile 'com.github.amlcurran.showcaseview:library:5.3.0'
compile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.5'
compile 'com.facebook.fresco:fresco:0.7.0'
compile 'com.facebook.fresco:imagepipeline-okhttp:0.7.0'
compile 'com.wang.avi:library:1.0.1'
compile 'com.balysv:material-ripple:1.0.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.github.markushi:circlebutton:1.1'
compile 'com.baoyz.pullrefreshlayout:library:1.2.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.github.jd-alexander:LikeButton:0.1.8'
compile 'com.android.support:multidex:1.0.1'
}
[编辑]
模块Gradle:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
项目的剩余部分,我正在使用口味,如果我放在这里将会很长:
defaultConfig {
applicationId "blacktoad.com.flapprototipo"
minSdkVersion 15
targetSdkVersion 23
versionCode 20
versionName "1.48"
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
preDexLibraries = false
jumboMode = true
}
答案 0 :(得分:1)
我解决了!
我添加了依赖项:compile 'com.android.support:multidex:1.0.1'
在我的MainActivity中,我添加了:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
答案 1 :(得分:1)
您错过了AndroidManifest.xml中的multidex设置
<application
...
android:name="android.support.multidex.MultiDexApplication"
...
>
如果您已经在应用程序标记中使用了name属性,请在该类中添加以下覆盖函数,该类扩展Application而不是AndroidManifest.xml。
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
当然,您应该在build.gradle
中拥有该代码android {
defaultConfig {
multiDexEnabled true
}
}