Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
okunetsky
0 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 29
#1

File provider IllegalArgumentException - Программирование Android

26.08.2016, 23:18. Просмотров 214. Ответов 0
Метки нет (Все метки)

Сейчас изучаю материалы тут.
Вот мой класс выбора файла

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public class FileSelectActivity extends AppCompatActivity {
 
    private ListView listView;
 
    // The path to the root of this app's internal storage
    private File mPrivateRootDir;
    // The path to the "images" subdirectory
    private File mBooksDir;
    // Array of files in the images subdirectory
    File[] mBookFiles;
    // Array of filenames corresponding to mBookFiles
    String[] mBookFilenames;
    // Initialize the Activity
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_file_select);
        listView= (ListView) findViewById(R.id.listView2);
 
 
 
 
        // Set up an Intent to send back to apps that request a file
        Intent mResult  =
                new Intent("com.example.myapp.ACTION_RETURN_FILE");
        // Get the files/ subdirectory of internal storage
        mPrivateRootDir = getFilesDir();
        // Get the files/images subdirectory;
        mBooksDir = new File(mPrivateRootDir, "/Books");
        // Get the files in the images subdirectory
        mBookFiles = mBooksDir.listFiles();
        // Set the Activity's result to null to begin with
        setResult(AppCompatActivity.RESULT_CANCELED, null);
        mBookFilenames=new String[mBookFiles.length];
        for (int i = 0; i < mBookFiles.length; i++) {
            mBookFilenames[i]=mBookFiles[i].getAbsolutePath();
        }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        ArrayAdapter<String> adapter=new ArrayAdapter<>(this,R.layout.item,R.id.textView2,mBookFilenames);
        listView.setAdapter(adapter);
 
 
 
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
 
                File requestFile=new File(mBookFilenames[i]);
 
//                Uri fileURI = FileProvider.getUriForFile(getApplicationContext(),
//                        "app.com.example.oleg.sharingfiles.fileprovider",
//                        requestFile);
                Log.d("oleh", String.valueOf(requestFile.getAbsolutePath()));
 
            }
        });
 
 
    }
}
Вот манифест с файлпровайдером
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="app.com.example.oleg.sharingfiles">
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="app.com.example.oleg.sharingfiles.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepaths" />
        </provider>
 
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".FileSelectActivity"></activity>
    </application>
 
</manifest>
А вот файл с доступными для просмотра папками
XML
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<paths>
    <files-path path="Books/" name="mybooks" />
</paths>
В итоге ошибка

6 16:10:26.851 12044-12044/app.com.example.oleg.sharingfiles E/AndroidRuntime: FATAL EXCEPTION: main
Process: app.com.example.oleg.sharingfiles, PID: 12044
java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/app.com.example.oleg.sharingfiles/files/Books/Pride and prejudice
at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
at app.com.example.oleg.sharingfiles.FileSelectActivity$1$override.onItemClick(FileSelectActivity.java:82)
at app.com.example.oleg.sharingfiles.FileSelectActivity$1$override.access$dispatch(FileSelectActivity.java)
at app.com.example.oleg.sharingfiles.FileSelectActivity$1.onItemClick(FileSelectActivity.java:0)
at android.widget.AdapterView.performItemClick(AdapterView.java:300)
at android.widget.AbsListView.performItemClick(AbsListView.java:1143)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3044)
at android.widget.AbsListView$3.run(AbsListView.java:3833)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2016, 23:18     File provider IllegalArgumentException
Посмотрите здесь:

Ошибка "Error opening trace file: No such file or directory (2)" - Программирование Android
пару часов назад прога работала включил комп перестала пишет такую ошибку java.lang.RuntimeException: Unable to start activity...

Как получить данные контакта из Contact Provider - Программирование Android
Подскажите как получить все данные из Contact Provider относящиеся к конкретному контакту?

Передача данных между двумя телефонами Android + Content Provider - Программирование Android
Добрый день. Подскажите, пожалуйста, есть телефон на нём установлена программа, в данной программе есть Content Provider. Можно ли по...

Ini file - Программирование Android
public class IniReader { private Properties iniFile; private String configurationFile = &quot;config.ini&quot;; public...

Не находит expansion file - Программирование Android
Здравствуйте! В приложении есть большое количество картинок и аудио. На этапе публикации приложения был сделан expansion file для их...

Open file dialog - Программирование Android
доброго времени. вопрос простой - как сделать (вызвать, если уже есть такой) диалог выбора и открытия файла. аналог Open File Dialog в .NET.

Установить java.nio.file - Программирование Android
Помогите растыке. как установить java.nio.file? где его скачать? Жал я на

Ошибка инициализации List<File> - Программирование Android
Проблема с инициализацией Error:(1575, 9) error: variable mapFiles might not have been initialized Мне нужно как то создать...

Чтение строк из file.txt - Программирование Android
Здравствуйте. Помогите, пожалуйста, с чтением данных из текстового файла. Система такая: у меня есть некий file.txt, в нем данные в...

Файл расширения (Expansion File) - Программирование Android
Есть приложение, где используется Expansion File. При загрузке приложения файл скачивается в папку android/obb/packageName/expansionFile....

Download file from Google Drive - Программирование Android
Проблема состоит в следующем: необходимо используя Google Drive API загрузить файл на устройство андроид или хотя бы считать его...

File Explorer в Eclipse (сохранить файл) - Программирование Android
Как можно сохранить(выкачать) файл из File Explorer в Eclipse?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru