Couldn't find meta-data for provider with authority

后端 未结 10 1234
粉色の甜心
粉色の甜心 2020-12-05 10:12

I have integrated Snapchat\'s Creative Kit in my Android app. After processing, I receive an image from the server in the form of Byte Array which I am saving to the disk an

相关标签:
10条回答
  • 2020-12-05 10:49

    In My Case;

    Manifest File:

    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths" />
    </provider>
    

    Code:

    import androidx.multidex.BuildConfig // NOT DO THIS!!!
    
    val uri = FileProvider.getUriForFile(this,
                BuildConfig.APPLICATION_ID+ ".provider", _tempFile)
    

    Exception:

    java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority androidx.multidex.provider
    

    Do not use androidx.multidex.BuildConfig, Because this values are not the values of our application:

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package androidx.multidex;
    
    public final class BuildConfig {
        public static final boolean DEBUG = false;
        public static final String APPLICATION_ID = "androidx.multidex";
        public static final String BUILD_TYPE = "release";
        public static final String FLAVOR = "";
        public static final int VERSION_CODE = -1;
        public static final String VERSION_NAME = "";
    
        public BuildConfig() {
        }
    }
    
    0 讨论(0)
  • 2020-12-05 10:53

    mImageFromCamera = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".fileprovider", mImageFile); android:authorities="${applicationId}.fileprovider"

    authorities must be same in xml and in code

    0 讨论(0)
  • 2020-12-05 10:53

    Change the authorities to a unique name to solve the issue like

    android:authorities="${applicationId}.myUniquefileprovider"

    also in java code

    0 讨论(0)
  • 2020-12-05 10:54

    In my case.

    I have a library project .Let's call it :LibApk

    When I code this : applicationId "my.package.name" in the build.grale(app)

    when build gradle tell me that : Library projects cannot set applicationId.

    applicationId is set to 'com.darcy.apkupdate' in default config.

    So ,I delete applicationId "my.package.name" .

    Then ,build.gradle look like this :

    But I forgot update the AndroidManifest.xml file which use ${applicationId}

    This is the problem!!!

    So I changed the variable to constant .The result looks like below picture:

    After This ,It's wokr for me!

    Hope this is help you...

    0 讨论(0)
提交回复
热议问题