Attempt to get length of null array kotlin
Подскажите пожалуйста в чём может быть проблема. есть 2 одинаковых приложения (на java и эквивалент на kotlin) с одинаковыми пермишинами
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
в этих приложениях есть одинаковый Java class
public class ShinimaHuynya {
private static ShinimaHuynya instance;
public static ShinimaHuynya getInstance() {
return instance;
}
ShinimaHuynya(){
this.instance = this;
}
boolean requestPermission(Activity ac) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ac.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ac.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0);
return false;
} else {
return true;
}
} else {
return true;
}
}
public void freeAllAppsCache(Handler handler) throws Exception {
Context context = App.Companion.getInstance().getApplicationContext();
File externalDir = context.getExternalCacheDir();
if (externalDir != null) {
PackageManager pm = context.getPackageManager();
for (ApplicationInfo info : pm.getInstalledApplications(256)) {
File externalCache = new File( externalDir.getAbsolutePath().replace(context.getPackageName(), info.packageName));
if (externalCache.exists() && externalCache.isDirectory()) {
try {
deleteFile(externalCache);
} catch (Exception e) {
e.printStackTrace();
}
}
}
...
}
public boolean deleteFile(File file) throws Exception {
if (file.isDirectory()) {
for (String name : file.list()) {
if (!deleteFile(new File(file, name))) {
return false;
}
}
}
return file.delete();
}
}
вызываются класс одинаково и в java (и эквивалентно в котлине)
Java------
if(ShinimaHuynya.getInstance().requestPermission(this))
ShinimaHuynya.getInstance().freeAllAppsCache(null)
kotlin----
if(ShinimaHuynya.getInstance().requestPermission(this))
ShinimaHuynya.getInstance().freeAllAppsCache(null)
при запуске выдаются пермишины но проблема в том что функция deleteFile в java работает отлично а в котлине выдает ошибку Attempt to get length of null array
в
for (String name : file.list())
в чем проблема понять не могу приложения эквиваленты проверял на Api 29