https://developer.Android.com/training/camera/photobasics.html
私がやろうとしているのは、カメラで写真を撮って保存し、ImageViewに表示することです。
上記のAndroidチュートリアルに従いましたが、次の行でエラー(NullPointerException)が発生し続けます。
Uri photoURI = FileProvider.getUriForFile(this, "com.example.Android.fileprovider", photoFile);
アプリのマニフェストでFileProviderを構成する必要があり、「権限」が一致する必要があることを知っています。 authorities引数に何を入れるべきか、私にはよくわかりません。ファイルres/xml/file_paths.xmlを含むチュートリアルのすべてのコードをコピーしました。必要に応じて質問をしてください。
ありがとう!
ようやく機能するようになりました!
プロバイダータグをマニフェストファイル内のアプリケーションタグ内に配置することを忘れないでください-それは私の間違いでした(私のプロバイダータグはアプリケーションタグの外側でした)。 。
また、.xmlファイルに正しいパスがあることを確認してください。これが私のバージョンです:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:Android="http://schemas.Android.com/apk/res/Android">
<external-path
name="my_images"
path="Android/data/org.projects.cameraapp/files/Pictures" />
</paths>
もちろん、独自のアプリケーションのパスを変更する必要があります。
実際のプロバイダーは次のようになります。
<provider
Android:name="Android.support.v4.content.FileProvider"
Android:authorities="org.projects.cameraapp.fileprovider"
Android:exported="false"
Android:grantUriPermissions="true">
<meta-data
Android:name="Android.support.FILE_PROVIDER_PATHS"
Android:resource="@xml/filepaths" />
</provider>
繰り返しますが、独自のアプリケーションで権限値を変更する必要があります。
私の元の質問からGitHubリポジトリですべてのソースを見ることができます。
<provider>
以内に <application>
;誤って修正したのと同じレベルにしました。
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="zm.mytestapplication">
<application
...
Android:theme="@style/AppTheme">
<provider
Android:name="Android.support.v4.content.FileProvider"
Android:authorities="zm.mytestapplication.fileprovider"
Android:exported="false"
Android:grantUriPermissions="true">
<meta-data
Android:name="Android.support.FILE_PROVIDER_PATHS"
Android:resource="@xml/file_paths"></meta-data>
</provider>
</application>
</manifest>
file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:Android="http://schemas.Android.com/apk/res/Android">
<external-path name="my_images" path="Pictures/zm/" />
</paths>