Android 10 не позволяет мне получить доступ к моим файлам из внешнего хранилища. В Android 9 мое приложение работало нормально. Я обновил свой телефон с Android 9 до Android 10, и мое приложение перестало отвечать.
main_activity.java
File directory;
File path;
File[] listfile;
//File listFiles;
ArrayList<String> arrayList;
directory = Environment.getExternalStorageDirectory();
path = new File(directory.getAbsolutePath()+ "/myfile/");
arrayList = new ArrayList<String>();
mycardview.setAdapter(new ImageAdapter(listimage.this, arrayList));
if (path.isDirectory()) {
listfile =path.listFiles();
for (int i = 0; i < listfile.length; i++) {
arrayList.add(listfile[i].getAbsolutePath());
}
Collections.shuffle(arrayList);
ОШИБКА:
java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.example.rajiv / com.example.rajiv.listimage}: java.lang.NullPointerException: попытаться получить длину нулевого массива в android.app.ActivityThread.performLaunchActivity (ActivityThread .java: 3374) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3513) в android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:83) в android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.executeCallbacks (TransactionExecutor.executeCallbacks. java: 135) на android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2109) на android.os.Handler.dispatchMessage (Handler.java : 107) в android.os.Looper.loop (Looper.java:214) в android.app.ActivityThread.main (ActivityThread.java:7682) в java.lang.reflect.Method.invoke (собственный метод ) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:516) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:950) Вызвано: java.lang.NullPointerException: Попытка получить длину нулевого массива в com.example.rajiv.listimage.onCreate (listimage.java:74) в android.app.Activity.performCreate (Activity.java:7815) в android.app.Activity.performCreate (Activity. java: 7804) в android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1318) в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3349)
Я проверил в Интернете, что проблема не в коде. Google применил исправление безопасности в Android 10, поэтому код не работает. Я также использовал разрешение на манифест, а также разрешение на выполнение ..
getExternalStorageDirectory()
устарело android 10targetSdkVersion 29
- person Kishan Viramgama   schedule 03.01.2020