Android 即时应用:RuntimeException:无法获取提供程序文件provider:SecurityException:提供程序必须授予uri权限
我尝试将即时应用程序功能添加到我的应用程序中,但当作为即时应用程序启动我的应用程序时,我遇到以下错误: RuntimeException:无法获取提供程序android.support.v4.content.FileProvider:java.lang.SecurityException:提供程序必须授予uri权限 以下是它在我的功能清单中的使用方式:Android 即时应用:RuntimeException:无法获取提供程序文件provider:SecurityException:提供程序必须授予uri权限,android,android-manifest,android-fileprovider,android-instant-apps,Android,Android Manifest,Android Fileprovider,Android Instant Apps,我尝试将即时应用程序功能添加到我的应用程序中,但当作为即时应用程序启动我的应用程序时,我遇到以下错误: RuntimeException:无法获取提供程序android.support.v4.content.FileProvider:java.lang.SecurityException:提供程序必须授予uri权限 以下是它在我的功能清单中的使用方式: <manifest> <application> <provider
<manifest>
<application>
<provider
android:name="android.support.v4.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>
</application>
</manifest>
怎么了?谢谢你的帮助
编辑:以下是完整的日志:
看起来O上也不支持,因为其他应用程序不允许查看其
我有一个测试应用程序,可以作为已安装的应用程序使用,但不能作为一个应用程序使用。似乎不允许即时应用使用grantUriPermissiongrant URI权限,鉴于即时应用对已安装的应用不可见且ContentProvider不可见的策略,这是有道理的
这意味着即时应用程序无法检索使用ACTION\u IMAGE\u CAPTURE拍摄的照片,因为它们无法读取外部存储,相机应用程序无法写入即时应用程序的私有存储。可能重复:@iamgopal我尝试执行此线程中描述的操作,但无法正常工作实际上我不知道该去哪里请输入此代码,因为我的应用程序在启动前就崩溃了。我添加了logcat。我尝试在logcat中报告的一行上设置断点,但执行并没有停止…让我们来看看。这似乎是实际的问题,我通过删除基本清单的这一部分并将其放入APK的清单中解决了它。
apply plugin: 'com.android.instantapp'
android {
compileSdkVersion rootProject.compileSdk
defaultConfig {
applicationId "applicationId" // same than my app's APK module
minSdkVersion rootProject.minSdk
targetSdkVersion rootProject.compileSdk
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation project(':feature') // app's feature
}
02-13 17:51:28.501 28992-28992/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: package, PID: 28992
java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must grant uri permissions
at android.app.ActivityThread.installProvider(ActivityThread.java:6206)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5721)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5639)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
Caused by: java.lang.SecurityException: Provider must grant uri permissions
at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:375)
at android.app.ActivityThread.installProvider(ActivityThread.java:6203)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5721)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5639)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
02-13 17:51:28.535 28932-28944/? E/Isotope: UID: [10188] PID: [28932] IActivityManagerProxy : Instant app: package crashed: java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must grant uri permissions
at android.app.ActivityThread.installProvider(ActivityThread.java:6206)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5721)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5639)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
Caused by: java.lang.SecurityException: Provider must grant uri permissions
at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:375)
at android.app.ActivityThread.installProvider(ActivityThread.java:6203)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5721)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5639)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1637)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)