Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
okunetsky
0 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 29
#1

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

26.08.2016, 23:18. Просмотров 322. Ответов 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)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2016, 23:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос File provider IllegalArgumentException (Программирование Android):

Cursor Android Studio (java.lang.IllegalArgumentException: column '_id' does not exist)
Пытаюсь создать приложения с двумя кнопками: Добавить и Удалить, EditText для...

Error opening trace file no such file or directory (2)
Наткнулся на исходники эмулятора nes, после выбора файла эмуляции .nes,...

Ошибка "Error opening trace file: No such file or directory (2)"
пару часов назад прога работала включил комп перестала пишет такую ошибку...

Как получить данные контакта из Contact Provider
Подскажите как получить все данные из Contact Provider относящиеся к...

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

Caused by: android.view.InflateException: Binary XML file line #13: Binary XML file line #13: Error inflating class
Caused by: android.view.InflateException: Binary XML file line #13: Binary XML...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2016, 23:18
Привет! Вот еще темы с решениями:

Entity Framework provider type registered in the application config file could not be loaded
Вылетает ошибка &quot;The Entity Framework provider type...

No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'
При работе приложение выкидывает такую ошибку. &quot;No Entity Framework provider...

Java.lang.IllegalArgumentException в нативных функциях (embedded Java, MicroEJ, STM32F4Discovery)
Добрый день! Пытаюсь связать embedded Java и C посредством нативных функций....

Ошибка fatal error C1083: Cannot open include file: ***: No such file or directory
Помогите пожалуйста исправить ошибку. При компиляции возникает вот такая беда....


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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