- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我在模拟器上运行该应用程序时,它总是在第一次尝试时运行。但是当应用程序已经安装在模拟器上时,它通常会导致应用程序启动时崩溃。此行为开始出现在 Android Studio 2.0 中。它不会出现在设备上,因此它不是那么重要,只是很烦人,因为我总是需要在安装新版本之前从模拟器中删除该应用程序。
由于我完全不知道是什么原因导致了这个问题,并且在研究过程中找不到类似的问题,我希望有人能帮助我。
错误信息:
08-25 09:55:35.023 4214-4214/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mls.Search.Abbott, PID: 4214
java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.FileProvider" on path: DexPathList[[zip file "/data/app/com.mls.Search.Abbott-2/base.apk"],nativeLibraryDirectories=[/data/app/com.mls.Search.Abbott-2/lib/x86, /data/app/com.mls.Search.Abbott-2/base.apk!/lib/x86, /vendor/lib, /system/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:5156)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.FileProvider" on path: DexPathList[[zip file "/data/app/com.mls.Search.Abbott-2/base.apk"],nativeLibraryDirectories=[/data/app/com.mls.Search.Abbott-2/lib/x86, /data/app/com.mls.Search.Abbott-2/base.apk!/lib/x86, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.ActivityThread.installProvider(ActivityThread.java:5141)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Suppressed: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.content.FileProvider" on path: DexPathList[[dex file "/data/data/com.mls.Search.Abbott/files/instant-run/dex/slice-slice_3-classes.dex"],nativeLibraryDirectories=[/data/app/com.mls.Search.Abbott-2/lib/x86, /data/app/com.mls.Search.Abbott-2/base.apk!/lib/x86, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.java:90)
at com.android.tools.fd.runtime.IncrementalClassLoader.findClass(IncrementalClassLoader.java:62)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 12 more
Suppressed: java.lang.ClassNotFoundException: android.support.v4.content.FileProvider
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
list 中的文件提供程序:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
最佳答案
如果您在模拟器中使用 Android 5.0 或更低版本(api 级别 21),然后将 multidex 支持库添加到您的项目中:
如果您的 minSdkVersion 设置为 21 或更高,您只需在模块级 build.gradle 文件中将 multiDexEnabled 设置为 true,如下所示:
android {
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 26
multiDexEnabled true
}
...
}
修改模块级 build.gradle 文件以启用 multidex 并将 multidex 库添加为依赖项,如下所示:
android {
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 26
multiDexEnabled true
}
...
}
依赖关系{ 编译 'com.android.support:multidex:1.0.1'
看看 https://developer.android.com/studio/build/multidex.html#mdex-gradle
关于android - 由于找不到 FileProvider 类,在模拟器上重新安装后应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39140172/
我有以下代码,它只适用于 Android 7 及以下版本。 Android 8 只显示一个空白文件,我手动打开 pdf 并且工作正常。 我有以下代码,这是 repo : private static
fileProvider 似乎没有将我的图像保存到外部存储。当我进入我的文件时,它创建了目录,但没有创建文件。我对 Android 编码相对陌生,所以请原谅我缺乏知识。 Fileprovider 位于
在我的 Android 应用程序中,我需要从 FileProvider 公开一些文件。如果没有加密,这非常简单:我只需将 FileProvider 添加到 manifest.xml 即可。
我有一个应用程序,我在其中捕获图像并将其设置为 ImageView,然后将其上传到服务器。但是,每当我捕获图像时,图像都不会显示,当我尝试上传图像时,我会得到 FileNotFoundExceptio
我有一个运行良好的 FileProvider,我可以将文件共享给任何应用程序,这是我的代码: 文件路径.xml: 设置共享 Intent : File f = new
我想使用 FileProvider访问 MyFirstApplication MySecondApplication 中的文件存储在内部目录中。我已经阅读了 FileProvider 的文档和示例。
我正在尝试做this tutorial . 我已遵循所有步骤,但由于错误说明而无法构建 Unresolved Class FileProvider 我已经安装了支持存储库。我目前的成绩如下: appl
我理解为什么 FileProvider 对于与另一个应用共享一个应用的私有(private)文件(应用的内部存储中的文件),同时控制权限很有用。 文档解释了如何使用它来共享外部存储(SD 卡等)中的文
我是 Android 编程的新手,学习过几个不同的教程。目标是将 pdf 文件从 Assets 文件夹复制到外部存储,然后在按下按钮打开 PDF 查看器时打开 Intent。我尝试使用 FilePro
我正在尝试测试 FileProvider tutorial . 它要求在 list 中包含: 在 list 中,我得到错误: Cannot resolve symbol FileProvider
我如何使用 FileProvider 提供辅助外部存储中的文件? ? 当前执行 FileProvider仅处理 ContextCompat.getExternalFilesDirs 返回的第一个目录
对于 Cache 目录中的文件,我可以在 xml 中添加它来设置 FileProvider 但是如果我将文件存储在外部缓存目录中,我无法获取外部缓存路径标签或类似的东西来设置 FilePro
我的 list 中有以下 FileProvider: 我在应用启动时遇到以下异常: java.lang.RuntimeException: Unable to
我无法打开下载文件夹中的任何文件。 我可以下载一个文件并保存在下载文件夹中: DownloadManager.Request request = new DownloadManager.Requ
我很好奇使用 android.support.v4.content.FileProvider 时的权限生命周期。 FileProvider 的文档说: Set the android:grantUri
我正在尝试让 Camera App 将输出存储到我的内部存储中。我还了解第三方应用程序无法访问我的应用程序的内部存储但是我们可以通过 FileProvider 公开内部目录来做到这一点。我已按照此处的
背景 针对 API 24 或更高版本,开发人员无需使用简单的“Uri.fromFile”命令,而是需要使用 FileProvider(或他们自己的 ContentProvider),以便让其他应用程序
A 正在开发 Android 项目。 我需要提供 ContentProvider 以提供对某些目录的访问。 FileProvider 这对我来说是一个很好的解决方案。 是否可以使用 FileProvi
这个问题已经有答案了: Permission Denial with File Provider through intent (4 个回答) 已关闭去年。 我正在尝试与 FileProvider 共
我制作了一个应用程序,该应用程序在一个文件夹(由同一应用程序创建)内创建一个 *.csv 文件,同时该文件位于 Android 的下载文件夹内。 该文件可以通过 ShareIntent 共享,问题是当
我是一名优秀的程序员,十分优秀!