Matisse icon indicating copy to clipboard operation
Matisse copied to clipboard

打开相册后,点击拍照崩溃,Couldn't find meta-data for provider with authority ”packageName“.fileprovider

Open HalyangDream opened this issue 4 years ago • 3 comments

Describe the bug 打开相册后,点击拍一张,发生崩溃

To Reproduce Steps to reproduce the behavior:

  1. Go to 'album'
  2. Click on 'take a picture'
  3. No sliding
  4. See error: java.lang.IllegalArgumentException : Couldn't find meta-data for provider with authority com.yaxiruisi.tik .fileprovider At androidx.core.content . FileProvider.parsePathStrategy ( FileProvider.java:606 ) At androidx.core.content . FileProvider.getPathStrategy ( FileProvider.java:579 ) At androidx.core.content . FileProvider.getUriForFile ( FileProvider.java:417 ) At com.zhihu.matisse . internal.utils.MediaStoreCompat .dispatchCaptureIntent( MediaStoreCompat.java:86 ) At com.zhihu.matisse . ui.MatisseActivity.capture ( MatisseActivity.java:433 ) At com.zhihu.matisse . internal.ui.adapter .AlbumMediaAdapter$1.onClick( AlbumMediaAdapter.java:75 ) At android.view.View .performClick( View.java:6291 ) At android.view.View $ PerformClick.run ( View.java:24931 ) At android.os.Handler .handleCallback( Handler.java:808 ) At android.os.Handler .dispatchMessage( Handler.java:101 ) At android.os.Looper .loop( Looper.java:166 ) At android.app.ActivityThread .main( ActivityThread.java:7529 ) At java.lang.reflect . Method.invoke (Native Method) At com.android.internal . os.Zygote $ MethodAndArgsCaller.run ( Zygote.java:245 ) At com.android.internal . os.ZygoteInit.main ( ZygoteInit.java:921 )

Expected behavior 点击拍一张,应该是调起相机而不是崩溃

Screenshots If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

  • Device: [e.g. HUAWEI LDN-L21]
  • OS: [e.g. Android 8.0]
  • Version [e.g. 0.5.3-beta3]

Additional context Add any other context about the problem here.

HalyangDream avatar Jun 28 '20 03:06 HalyangDream

我想咱俩情况应该一样 咱们用的是AndoridX 而库里所导入的包是 v4

TheWindReses avatar Jun 30 '20 05:06 TheWindReses

//这两行要连用 是否在选择图片中展示照相 和适配安卓7.0 FileProvider .capture(true) //安卓7.0 FileProvider .captureStrategy(new CaptureStrategy(true, AppUtils.getApplicationId()+".fileprovider"))

long216 avatar Jul 12 '20 06:07 long216

相机7.0以后需要配置自己的FileProvider,大致步骤如下: AndroidX环境,V0.5.3-beta3 step1:

.capture(true)
.captureStrategy(new CaptureStrategy(true, BuildConfig.APPLICATION_ID))

step2:res->xml目录下创建file_path.xml res->xml->file_path.xml

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path
        name="office"
        path="." />
</paths>

step3:AndroidManifest.xml中注册注册provider

<provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="你的APPLICATION_ID"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_path" />
        </provider>

daleige avatar Aug 15 '20 04:08 daleige