gpt4 book ai didi

在发布版本中找不到 Android FileProvider 类

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:57:17 25 4
gpt4 key购买 nike

我正在使用 FileProvider 从设备获取照片。该实现在调试版本(minifyEnabled false)中工作得很好,但是当我构建发布版本(minifyEnabled true)时,我得到一个错误:

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.package.name-2/base.apk"],
nativeLibraryDirectories=[/data/app/om.package.name-2/lib/arm, /vendor/lib, /system/lib]]

所以我猜这与 proguard 设置有关

我有

compile 'com.android.support:support-v13:23.1.1'

这是我的 gradle 文件中 v4 的超集

minSdkVersion 21
targetSdkVersion 23

-keep class android.support.v4.app.** { *; }
-keep class android.support.v4.content.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep interface android.support.v4.content.** { *; }
-keep class * extends android.content.ContentProvider

在我的 proguard-rules.pro 文件中

我已经用 Android 5 和 6 进行了测试,同样的事情发生了。任何建议都会有用,在此先感谢。

最佳答案

以下对我有用:

在你的模块 build.gradle 文件中:

defaultConfig {
...
multiDexEnabled true
...

然后:

dependencies {
...
compile 'com.android.support:multidex:1.0.2'
...

最后,确保您的应用程序类具有以下之一:

一个。如果您扩展您的应用程序类:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
</manifest>

B.如果您确实扩展了您的 Application 类并且可以更改基类:

public class MyApplication extends MultiDexApplication { ... }

C.如果您确实扩展了您的 Application 类并且不能更改基类:

  public class MyApplication extends SomeOtherApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}

更多信息:

https://developer.android.com/studio/build/multidex.html#mdex-gradle

关于在发布版本中找不到 Android FileProvider 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34765211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com