Я пытаюсь протестировать свое приложение, но не желаю никаких эмуляторов. Я пробовал несколько разных AVD и BlueStacks. Из-за того, как они монтируют виртуальную SDCard, мое приложение не находит каталог кэша, как ожидалось. Однако, когда я запускаю одно и то же приложение на двух разных телефонах Android, он работает нормально. Столкнувшись с этой проблемой, я подумал, что должен быть лучший способ обратиться к папке, которую я ищу.Приложение не работает на AVD, только на реальных устройствах
Я использую это в моем OnCreate:
// Check if application exists
for (int i = 0; i < list.size(); i++) {
if (list.get(i).packageName.equals("com.someapphere")) {
v.setText("Application Found");
break;
} else {
v.setText("Application Not Found");
}
}
if (v.getText() == "Application Found") {
// Check for Cache Usage
final File dataStore = Environment.getExternalStorageDirectory();
try {
File tCache = new File(dataStore.getAbsolutePath()
+ "/Android/data/com.someapphere/cache");
long tCacheSize = folderSize(tCache);
if (tCacheSize == 0) {
v2.setText(" Nothing to do");
} else {
// Start Async task - delete files
...
}
} catch(Exception e) {
v2.setText(" Cache not found");
}
}
я вынул некоторые другие неактуальной вещи я делаю здесь, но остальные должны повторить эту проблему. Если это еще не очевидно, я по-прежнему новичок в программировании.
Спасибо за отзыв о сравнении текста. Тем не менее, у всех моих конфигураций AVD уже выделено пространство SD. Одна вещь, которую я еще не пробовал, заключается в установке файлового менеджера в AVD, и проверка структуры действительно /Android/data/com.app/cache. Я сделаю это дальше. –
Я получаю ошибку lint после изменения текстовой части. Он говорит: «Метод equalsIgnoreCase (String) не определен для типа CharSequence». –
getText() возвращает charSequence. поэтому нам нужно преобразовать его в строку, например отредактированный код. –