| page.title=Report Bugs | |
| @jd:body | |
| <!-- | |
| Copyright 2015 The Android Open Source Project | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| <div id="qv-wrapper"> | |
| <div id="qv"> | |
| <h2>In this document</h2> | |
| <ol id="auto-toc"> | |
| </ol> | |
| </div> | |
| </div> | |
| <p>Thank you for your interest in Android! One of the best ways you can help us | |
| improve Android is to let us know about any problems you find with it.</p> | |
| <h2 id="report-issues">Report Issues</h2> | |
| <p class="note"><strong>Note:</strong> For security vulnerabilities, please see | |
| <a href="{@docRoot}devices/tech/security/overview/updates-resources.html#reporting-security-issues">Reporting Security Issues</a>. If you think you've found | |
| a security vulnerability, <em>please don't use the forms below</em>. Using a public form may | |
| allow anyone to see your report, which may put users at risk until the bug is | |
| fixed. Instead, please send an email detailing the issue to security@android.com.</p> | |
| <p>Here's how to report <strong>non-security</strong> bugs:</p> | |
| <ul> | |
| <li> | |
| <p><a href="https://code.google.com/p/android/issues/advsearch">Search for | |
| your bug</a> to see if anyone has already reported it. Don't forget to | |
| search for all issues, not just open ones, as your issue might already | |
| have been reported and closed. To help you find the most popular results, | |
| sort the result by number of stars.</p> | |
| </li> | |
| <li> | |
| <p>If you find your issue and it's important to you, star it! That's how we know which bugs are most important to fix.</p> | |
| </li> | |
| <li> | |
| <p>If no one has reported your bug, file the bug. You can use one of these templates:</p> | |
| <ul> | |
| <li> | |
| <p><a href="https://code.google.com/p/android/issues/entry?template=User%20bug%20report">Bug in your Device</a> - | |
| use this if you are a user reporting a bug in a device you own</p> | |
| </li> | |
| <li> | |
| <p><a href="https://code.google.com/p/android/issues/entry?template=Developer%20bug%20report">Bug in the Software</a> - | |
| use this if you found a bug in the course of developing an app</p> | |
| </li> | |
| <li> | |
| <p><a href="https://code.google.com/p/android/issues/entry?template=Feature%20request">Feature Request</a> - | |
| use this for a feature you'd like to see in a future verison</p> | |
| </li> | |
| </ul> | |
| </li> | |
| </ul> | |
| <p>Keep in mind that an issue tracker is not a user support forum. It is a list | |
| of pending technical tasks, along with information relevant for those tasks, | |
| and information about progress on those tasks including which ones might | |
| get worked on in the short term.</p> | |
| <p>This issue tracker is narrowly focused on the Android Open Source Project. | |
| Issues with retail devices need to be reported through those devices' support | |
| channels, especially for devices other than Nexus. Issues with applications | |
| that aren't part of AOSP need to be reported with those applications' | |
| developers; that is also the case for Google applications.</p> | |
| <p>Please note that we can't guarantee that any particular bug can be fixed in | |
| any particular release. To see what happens to your bug once you report it, | |
| read <a href="life-of-a-bug.html">Life of a Bug</a>.</p> | |
| <p>In general, please put as much info in bugs as you can. Just a one liner | |
| telling us something isn't working is usually useless, and will probably be | |
| closed without any action. The more detail you provide, the more likely your | |
| issue is to be resolved. Below, there are some examples of a good bug report | |
| and a poor bug report.</p> | |
| <h2 id="a-poor-bug-report">A Poor Bug Report</h2> | |
| <blockquote> | |
| Title: Error message | |
| When running Eclipse I get an "Internal Error" that says "See the .log file for more details". | |
| Steps to reproduce: | |
| Happens when "Object o = null". Doesn't happen when changed to "Object o". | |
| Expected results: | |
| I wouldn't get the error message--would work with Object o = null. | |
| Observed results: | |
| See above. | |
| </blockquote> | |
| <p>This is a poor bug report because it doesn't provide any context for the | |
| issue; is it a problem in the ART runtime, the core framework, or | |
| something else? It also doesn't provide any code or hint on how to reproduce | |
| it. In other words, this bug report doesn't provide enough information for | |
| anyone to take action on, so it would be ignored.</p> | |
| <h2 id="a-good-bug-report">A Good Bug Report</h2> | |
| <blockquote> | |
| Title: Stepping over "Object o = null" causes Eclipse "Internal Error" | |
| Interesting bug, while using Eclipse 3.3.1.1 with m37a of android and the following code: | |
| <pre> | |
| package com.saville.android; | |
| import android.app.Activity; | |
| import android.os.Bundle; | |
| import android.util.Log; | |
| public class TestObjectNull extends Activity { | |
| /** Called when the activity is first created. */ | |
| @Override | |
| public void onCreate(Bundle icicle) { | |
| super.onCreate(icicle); | |
| setContentView(R.layout.main); | |
| Object o = null; | |
| o = "hi"; | |
| Log.v(TAG, "o=" + o); | |
| } | |
| static final String TAG = "TestObjectNull"; | |
| } | |
| </pre> | |
| Eclipse indicates an "Internal Error" with "See the .log file for more | |
| details" and then asks if I want to exit the workbench. This occurs when I | |
| place a break point on "setContentView(R.layout.main);" and then single | |
| step over "Object o = null;" | |
| If I change "Object o = null;" to "Object o" all is well. | |
| The last lines of the .log file are: | |
| <pre> | |
| !ENTRY org.eclipse.core.jobs 4 2 2008-01-01 13:04:15.825 | |
| !MESSAGE An internal error occurred during: "has children update". | |
| !STACK 0 | |
| java.lang.InternalError: Invalid signature: "<null>" | |
| at | |
| org.eclipse.jdi.internal.TypeImpl.signatureToTag(TypeImpl.java:307) | |
| at | |
| org.eclipse.jdi.internal.LocalVariableImpl.tag(LocalVariableImpl.java:185) | |
| at | |
| org.eclipse.jdi.internal.StackFrameImpl.getValues(StackFrameImpl.java:128) | |
| at | |
| org.eclipse.jdi.internal.StackFrameImpl.getValue(StackFrameImpl.java:73) | |
| at | |
| org.eclipse.jdt.internal.debug.core.model.JDILocalVariable.retrieveValue(JDILocalVariable.java:57) | |
| at | |
| org.eclipse.jdt.internal.debug.core.model.JDIVariable.getCurrentValue(JDIVariable.java:66) | |
| at | |
| org.eclipse.jdt.internal.debug.core.model.JDIVariable.getValue(JDIVariable.java:88) | |
| at | |
| org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.hasChildren(VariableContentProvider.java:62) | |
| at | |
| org.eclipse.jdt.internal.debug.ui.variables.JavaVariableContentProvider.hasChildren(JavaVariableContentProvider.java:73) | |
| at | |
| org.eclipse.debug.internal.ui.model.elements.ElementContentProvider.updateHasChildren(ElementContentProvider.java:223) | |
| at | |
| org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$3.run(ElementContentProvider.java:200) | |
| at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) | |
| </pre> | |
| </blockquote> |