Fehler bei NoNonsens File Picker

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Fehler bei NoNonsens File Picker

    Hey liebes Forum,
    Ich würde gerne mit dem NoNonsens File Picker einen Folder auswählen. Laut Webseite sollte das eigentlich kein Problem sein. Ich habe nun den Code von der Webseite (spacecowboy.github.io/NoNonsense-FilePicker/ ) übernommen und angewendet. Hier der Code:

    Java-Quellcode

    1. try{
    2. Intent selectDirectoyIntent = new Intent(getApplicationContext(), FilePickerActivity.class);
    3. selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
    4. selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, false);
    5. selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR);
    6. selectDirectoyIntent.putExtra(FilePickerActivity.EXTRA_START_PATH, Environment.getExternalStorageDirectory().getPath());
    7. startActivityForResult(selectDirectoyIntent, DIR_REQUEST_CODE); }
    8. catch (Exception e){ ...}
    Dazu habe ich die onActivityResult überschrieben, wie auf der Seite angegeben. Dieser Code wird jedoch nicht einmal aufgerufen, da eine Exception geworfen wird:

    Java-Quellcode

    1. photosort E/AndroidRuntime: FATAL EXCEPTION: main
    2. Process: com.leoblocksantos.photosort, PID: 2728 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
    3. at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:584)
    4. at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:558)
    5. at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
    6. at com.nononsenseapps.filepicker.FilePickerFragment.toUri(FilePickerFragment.java:201)
    7. at com.nononsenseapps.filepicker.FilePickerFragment.toUri(FilePickerFragment.java:28)
    8. at com.nononsenseapps.filepicker.AbstractFilePickerFragment.onClickOk(AbstractFilePickerFragment.java:314)
    9. at com.nononsenseapps.filepicker.AbstractFilePickerFragment$2.onClick(AbstractFilePickerFragment.java:196)
    10. at android.view.View.performClick(View.java:5637)
    11. at android.view.View$PerformClick.run(View.java:22429)
    12. at android.os.Handler.handleCallback(Handler.java:751)
    13. at android.os.Handler.dispatchMessage(Handler.java:95)
    14. at android.os.Looper.loop(Looper.java:154)
    15. at android.app.ActivityThread.main(ActivityThread.java:6119)
    16. at java.lang.reflect.Method.invoke(Native Method)
    17. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    18. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
    Alles anzeigen
    Mir sagt die Fehlermeldung jetzt aber leider garnichts. Ist in der runtergeladenen Bibliothek ein Fehler?
    Hoffe ihr könnt mir weiter helfen :)
    alles liebe,
    Leo
  • Hi wieso schreibst du den Code in die onActivityResult Methode? Diese wird aufgreufen wenn du vom FilePicker zurück kommst.
    der Aufrufende Intent gehört in dein Klicklistner oder onCreat.
    ist auch in der Anleitung beschrieben.
    Starting the picker in your app
    // This always works Intent i = new Intent(context, FilePickerActivity.class); // This works if you defined the intent filter // Intent i = new Intent(Intent.ACTION_GET_CONTENT); // Set these depending on your use case. These are the defaults. i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false); i.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, false); i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_FILE); // Configure initial directory by specifying a String. // You could specify a String like "/storage/emulated/0/", but that can // dangerous. Always use Android's API calls to get paths to the SD-card or // internal memory. i.putExtra(FilePickerActivity.EXTRA_START_PATH, Environment.getExternalStorageDirectory().getPath()); startActivityForResult(i, FILE_CODE);
    onActivityResult ist eine Callback Methote und da hast du so meine ich keinen Zugriff auf getApplicationContext() wenn du den brauchst dann speichere den Context in eine Variablen global in der Klasse. soviel nur am Rande.
    Der Aufruf muss trotzdem in der App erfolgen.
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jogimuc ()

  • Hey Jogimuc,
    danke für deine schnelle Antwort.
    Ich habe wohl leider an der falschen Stelle mit Erklärungen gespart, tut mir leid.
    Der Code bei nem ButtonClick aufgerufen. Der Intent wird normal ausgeführt und der FilePicker wird gestartet. Dort kann ich auch durch das File System navigieren. Wähle ich dann aber einen Ordner oder ein File aus, dann bekomme ich die oben genannte Fehlermeldung.
    Die onActivityResult Methode habe ich von der Webseite kopiert. Diese wird aber nie aufgerufen, da die App vorher bereits abstürzt.
    Liebe Grüße,
    Leo
  • hast du auch den Code in die Manifestdatei Übernommen?


    <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/nnf_provider_paths" />
    </provider>


    github.com/spacecowboy/NoNonsense-FilePicker
    Ein Feedback auf Tipps ist auch schön. :P

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von jogimuc ()