Каковы общие ошибки, о которых следует позаботиться, работая над проектом Android?
Это могут быть
- Особая ошибка Android
- Особая ошибка Java
Каковы общие ошибки, о которых следует позаботиться, работая над проектом Android?
Это могут быть
Я перечислю некоторые ошибки, которые я всегда получаю.
Ошибка NullPointer
ActivityNotFoundException: не удается найти явное исключение класса активности
Приложение не отвечает (ANR)
это блокирует поток пользовательского интерфейса, поэтому пользователь не может работать. чтобы избежать ANR прочитать это и this
Это то, что я в основном получаю при создании Android Project.
Да:
try{
// try something
} catch (Exception e) {
Log.e("TAG", "Exception in try catch", e);
return false;
}
return true;
<Не p > Нет:
try{
// try something
} catch (Exception e) {
return false;
}
return true;
Используйте правильное Преобразование имен для всех переменных и идентификаторов в макете. *
Я прочитал одна статья из сети, содержащую некоторую ошибку, теперь добавляю, что alos, если у него есть избыточность, пожалуйста, простите меня.
Проблема: Мой ранее хороший RelativeLayout делает уродливую кучу, или некоторые элементы больше не видны... Что происходит??? Я просто переместил элемент в нем... Решение: Никогда не забывайте, что в RelativeLayout элементы ссылаются и размещаются по отношению к их соседям. Возможно, что-то не так в иерархии отношений между вашим элементом. Попробуйте открыть схему в Eclipse и щелкнуть по каждому элементу, чтобы увидеть, где происходит разрыв.
Проблема: Круговые зависимости не могут существовать в RelativeLayout Решение: Вы, вероятно, писали одну и ту же зависимость двумя способами. Например, ImageView как атрибут android: layout_toRightOf TextView и TextView имеет android: layout_toLeftOf ImageView. Только один из них необходим
Проблема: Я написал стиль для одного из моих представлений/макетов, но когда я применяю его в своем xml, у меня нет отображения в средстве просмотра макетов Eclipse Решение: К сожалению, это похоже на ошибку Android ADT, я сообщил об этом, но никаких новостей пока нет. Во всяком случае, никакой паники, стили не работают хорошо, но они не отображаются должным образом в Eclipse. Просто создайте приложение и запустите его на эмуляторе или телефоне, и вы увидите, все ли в порядке или нет.
Проблема: Тост написан правильно, но ничего не отображается Решение: Это обычная ошибка использования: просто добавьте метод .show(), чтобы показать Toast и посмотреть, хорошо ли он работает
Вопрос: Я попытался отобразить String из strings.xml, но у меня просто было число 0x7f060001 Решение: Это не ошибка, просто дисплей из-за того, как андроид занимается ресурсами. Когда вы хотите получить ресурс, вы должны использовать метод getString (R.id.something), getDrawable,... В противном случае вы просто будете отображать ссылку, написанную в классе R
Проблема: Некоторое изменение кода не имеет никакого эффекта в приложении Решение: есть 2 варианта: либо вы забыли что-то вроде .show() Toast, либо эмулятор не обновляет ваше приложение. В этом случае вы должны проверить опцию "Протирать пользовательские данные" в конфигурации запуска эмулятора в Eclipse.
Проблема: Как отображать границы на моем столе? Решение: Нет прямого способа сделать это в android, вы должны использовать трюк: http://www.droidnova.com/display-borders-in-tablelayout,112.html
Проблема: эмулятор записывает в japaneese с тем, что вы изменили какой-либо параметр Решение: Иногда это бывает довольно легко исправить, просто щелкните в любом поле EditText и измените тип ввода на то, что вы хотите
Проблема: Я не могу заставить контекстное меню появляться в эмуляторе Решение: длительный щелчок на эмуляторе, похоже, не регистрируется на каждом виде, вам нужно нажать кнопку в центре четырех указательных стрелок
Проблема: Я следую учебному курсу о маршруте карты, но я не могу заставить его работать, android не находит пакет Решение: Возможно, вы использовали учебник, написанный для 1.5 SDK. В это время был пакет для отображения маршрута в Android, но он был удален в следующем SDK и больше не доступен. Это просто невозможно. Кажется, что есть трюк с файлами KML, но ничего официального
Проблема: Отправка координат в эмулятор дает неправильное положение Решение: убедитесь, что вы написали координату как 51.16548, а не 51,16548 или 5116548
Проблема: Только исходный поток, создавший иерархию представлений, может коснуться его представлений. Решение: Вы, должно быть, пытались обновить содержимое представления из другого потока, кроме потока пользовательского интерфейса. 2 варианта исправления: либо создайте обработчик в вашем потоке пользовательского интерфейса, либо опубликуйте свой Runnable для этого обработчика или используйте метод runOnUIThread для запуска строк кода, которые делают обновление
Проблема: доступ к localhost 127.0.0.1 не работает Решение: он работает, вы просто не делаете это правильно: используйте 10.0.2.2
Другая типичная ошибка начинающего - это не чистый проект после ошибки в xml...
Хотя нельзя назвать ошибкой (но ошибкой) В большинстве случаев я забываю добавить разрешения (т.е. CAMERA, WRITE_EXTERNAL_STORAGE) в файле AndroidManifest.
<uses-library android:name="com.google.android.maps" />
в неправильном месте манифеста.show()
тост._id
. Смотрите этот потокТакже не прямо ошибка, а неправильное представление:
Ошибка монстра OutOfMemoryError: размер растрового изображения превышает бюджет VM
Другая распространенная ошибка или ошибка:
Пока мы расширяем свою активность с помощью ListActivity
public class ListViewDemo extends ListActivity
{
// some code here
}
И всегда забывал добавлять id android:id="@id/android:list"
в тег ListView
в XML-макете.
И адаптер выдает NullPointerException
из-за стандартного id android:id="@+id/ListView01
Самая распространенная ошибка или проблема возникают при создании проекта в Eclipse, и мы должны указывать имя pakage, которое должно быть как минимум одним dot (.)
, но большинство новичков не знает об этом.
Как и у пакета приложений Android, должно быть два уровня.
например. - com.myapp
но каждый новичок застрял в этой точке.
java.net.SocketException, если пользователь не определяет разрешения для Интернета в файле mainfest при использовании webservice
одна общая ошибка - это nullPointerException...
Одна ошибка, которую я делаю снова и снова, пытается установить свойство цвета с использованием идентификатора ресурса.
Я могу установить свой текст представления, указав целочисленный идентификатор ресурса,
view.setText(R.string.my_text);
но если я попробую одно и то же для цвета, я получу оттенок темно-серого, независимо от фактического значения цвета:
view.setBackgroundColor(R.color.my_colour);
Проблема заключается в том, что цвета Android представлены в виде 32-битных значений целочисленного значения ARGB, так что ожидается в параметре int. Это должно быть:
view.setBackgroundColor(context.getResources().getColor(R.color.my_colour));
Мы должны правильно закрыть базу данных Sqlite и курсор.
Идет утечка памяти и исключение из закрытой cusror и базы данных
Авария приложения без каких-либо уведомлений при повороте телефона (автоматическое вращение включено в телефоне).
Это связано с "ориентацией". Есть несколько решений, самый простой - установить android:preferedOrientation="portrait"
в файле манифеста для каждого действия. Кроме того, установите в коде это, если вы динамически создаете действия.
Другие решения включают правильное обращение с onPause, onRestart... и т.д., Методы активности (например, сохранение состояния и т.д.).