2017-08-22 11 views
0

このエラーを修正しようとしていますが、どこから来たのか分かりません。FileProviderをDialogFragmentから呼び出す際にエラーが発生しました - null参照先オブジェクト、

新しいユーザーを作成する私のフラグメントから、私はカメラまたはギャラリーから写真を選択できる別のfragmentDialog(ImageButton Click上)を呼び出しています。ギャラリーは正常に動作しますが、カメラは動作しません。この行では:

Uri photoUri = FileProvider.getUriForFile(globalContext, getActivity().getPackageName() + ".provider", getCameraFile()); 

私はこのエラーを取得しています:

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference 

すべてのデータは、(私がログに確認してください)正しく表示されています。

ここで問題がありますか?

よろしく、 グジェゴシ

EDIT:

フルスタックトレース:

FATAL EXCEPTION: main 
                      Process: com.myapp.myapp, PID: 27523 
                      java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference 
                       at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:583) 
                       at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:557) 
                       at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:399) 
                       at com.myapp.myapp.utils.PictureDialog.onTakePhoto(PictureDialog.java:80) 
                       at com.myapp.myapp.utils.PictureDialog_ViewBinding$1.doClick(PictureDialog_ViewBinding.java:32) 
                       at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22) 
                       at android.view.View.performClick(View.java:5184) 
                       at android.view.View$PerformClick.run(View.java:20893) 
                       at android.os.Handler.handleCallback(Handler.java:739) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:145) 
                       at android.app.ActivityThread.main(ActivityThread.java:5940) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at java.lang.reflect.Method.invoke(Method.java:372) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1389) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1184) 
+1

'globalContext'は' null'です。質問を編集し、1行だけでなく、Javaスタックトレース全体を投稿してください。 – CommonsWare

+0

それはonAttachからコンテキストをとる私の変数です。私はgetActivity()とgetApplicationContext()の代わりに同じ結果を使用しました。 –

答えて

1

FileProvidergetActivity().getPackageName() + ".provider"に等しいandroid:authorities値を有するマニフェストに<provider>要素を見つけることができません。具体的には、infoためnull値でこのコードの結果:

final ProviderInfo info = context.getPackageManager() 
      .resolveContentProvider(authority, PackageManager.GET_META_DATA); 

contextgetUriForFile()authorityへの最初のパラメータはgetUriForFile()の2番目のパラメータである場合)

は、あなたの付属機関の文字列は、あなたと一致することを確認してください<provider>要素。

+0

それは動作します、ありがとう! –

関連する問題