我尝试使用OkHttp和Picasso(following this answer)对我从Firebase存储下载的图像进行磁盘缓存。现在,该应用程序提供例外和崩溃。我看过这些帖子:post 1,post 2但我没有找到任何相关解决方案。我也试图清理和重建项目,但没有运气。
这是 build.gradle :
<div#chart>
完整Stacktrace :
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "social.com.networking.social.media.app"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
multiDexEnabled true
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
compile 'br.com.mauker.materialsearchview:materialsearchview:1.2.0'
compile 'com.alirezaafkar:toolbar:1.1.1'
compile 'com.github.mancj:MaterialSearchBar:0.3.5'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-ads:10.0.1'
compile 'com.google.firebase:firebase-messaging:10.0.1'
compile "com.google.firebase:firebase-auth:10.0.1"
compile 'com.google.firebase:firebase-storage:10.0.1'
compile 'com.google.firebase:firebase-crash:10.0.1'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'
compile 'com.android.support:multidex:1.0.1'
compile 'org.parceler:parceler-api:1.1.6'
annotationProcessor 'org.parceler:parceler:1.1.6'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
编辑1: 我已经启用MultiDex,因为雷德曼说,但它仍然给出相同的错误。根据这个:developer.android.com/studio/build/multidex.html#keep,我需要决定基本APK中哪些类是必需的。如何确定哪些类是必要的?
答案 0 :(得分:57)
在 Android Studio 2.3及更高版本中,即时运行可能会影响您的代码。
禁用Instant Run
文件 - &gt;设置 - &gt;构建,执行,部署 - &gt;即时运行
就我而言,从
Android Studio
开始运行时它非常完美 从其他来源安装时崩溃
答案 1 :(得分:9)
1)请从您的手机中卸载该应用
2)立即从android studio
重新安装应用程序3)98%它将工作,否则清理项目并重新安装
答案 2 :(得分:6)
您可能需要启用multidex,请按照此
中的指南操作https://developer.android.com/studio/build/multidex.html,用于启用multidex
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
答案 3 :(得分:2)
我的代码方式使用USB线在设备上很好地编译,但是当我尝试使用* .apk文件安装它时,它正在破坏,所以我取消选中文件 - &gt;选项。设置 - &gt;构建,执行,部署 - &gt;即时运行,但现在它与* .apk文件正常工作并开始打破USB安装,错误信息在attachec图像中,即使我按OK它不起作用,当我尝试你安装它再次出现相同的错误消息。
答案 4 :(得分:2)
只需删除项目的构建文件夹,然后清理并运行您的应用程序。这对我有用......
答案 5 :(得分:1)
尝试从项目中删除 .gradle 文件夹。
答案 6 :(得分:0)
我也遇到了这个问题,但仍然无法关闭即时运行。后来,我发现我删除了build-cache文件夹下的所有文件,然后清理了project.My目录是C:\ Users \ HDB。 Android \ built-cache。我希望我能帮助遇到这个bug的其他人。
答案 7 :(得分:0)
对我来说,此问题已通过禁用即时运行
解决了只需转到首选项->构建,执行,部署->即时运行->禁用该选项
并重新启动应用
答案 8 :(得分:0)
(我知道这是一个老问题,但是我来这里是为了寻找类似问题的解决方案。)
在用尽以上所有其他建议之前,我有一个不同的答案来考虑 : ClassNotFoundException:YourParcelableClass错误可能不是问题。实际上,可能不是是一个问题。
我有一个应用程序,可以显示各种内容的屏幕,该屏幕以Parcelable形式传入并在WebView中以HTML形式呈现;直到我清理代码,签入代码,签出一棵干净的新树,然后在手机上卸载并重新安装该应用程序之后,它的工作状况一直很好。我开始出现黑屏;显然,日志中的ClassNotFoundException表示未正确解组我的内容。
在至少一个小时后,他们禁用了即时运行,rm -rf .gradle
,清理项目,无效缓存和重新启动等,之后,我开始添加越来越多的健全性问题日志记录,直到我发现我是从Intent.getParcelableExtra()
获取我的内容;黑屏似乎无关! (我仍然不知道为什么,但是WebView.loadData()
已停止工作,必须替换为WebView.loadDataWithBaseURL()
。)
希望这可以为其他人节省一个小时的愚蠢时间。如果看到带有类名称的ClassNotFoundException,请检查是否仍正确解组对象;他们可能是!
答案 9 :(得分:0)
我找到了该问题的另一个“答案”。使用Android Studio 3.3.2时,我得到了相同的错误消息。我决定清除所有断点。在断点对话框中,有两个“永久”选项,Java异常断点和异常断点。我把它们都检查了,可能是偶然的。当我清除它们和其他断点时,我可以在调试模式下运行。现在调试正在运行,只要不检查断点就可以添加!
答案 10 :(得分:0)
将此添加到您的应用级 Gradle 中的 android 标记
buildFeatures {
dataBinding true
}
答案 11 :(得分:-1)
由于库版本规范的差异可能导致运行时错误,因此也会发生此错误。
始终在build.gradle中使用相同版本的库
例如:
使用此:
implementation 'com.google.android.gms:play-services-location:11.6.0'
implementation 'com.google.android.gms:play-services-auth:11.6.0'
而不是:
implementation 'com.google.android.gms:play-services-location:15.0.0'
implementation 'com.google.android.gms:play-services-auth:11.6.0'