Home | History | Annotate | Download | only in source
      1 page.title=Report Bugs
      2 @jd:body
      3 
      4 <!--
      5     Copyright 2010 The Android Open Source Project
      6 
      7     Licensed under the Apache License, Version 2.0 (the "License");
      8     you may not use this file except in compliance with the License.
      9     You may obtain a copy of the License at
     10 
     11         http://www.apache.org/licenses/LICENSE-2.0
     12 
     13     Unless required by applicable law or agreed to in writing, software
     14     distributed under the License is distributed on an "AS IS" BASIS,
     15     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16     See the License for the specific language governing permissions and
     17     limitations under the License.
     18 -->
     19 <div id="qv-wrapper">
     20   <div id="qv">
     21     <h2>In this document</h2>
     22     <ol id="auto-toc">
     23     </ol>
     24   </div>
     25 </div>
     26 <p>Thanks for your interest in Android! One of the best ways you can help us
     27 improve Android is to let us know about any problems you find with it.</p>
     28 <p>First, though: if you think you've found a security vulnerability,
     29 <em>please don't use the forms below</em>. Using the public forms below may
     30 allow anyone to see your report, which may put users at risk until the bug is
     31 fixed. Please visit
     32 <a href="{@docRoot}source/faqs.html">our
     33 security faq</a> for more information on reporting security vulnerabilities
     34 to the Android security team.</p>
     35 <p>Here's how to report non-security bugs:</p>
     36 <ul>
     37 <li>
     38 <p><a href="https://code.google.com/p/android/issues/advsearch">Search for
     39 your bug</a> to see if anyone has already reported it. Don't forget to
     40 search for all issues, not just open ones, as your issue might already
     41 have been reported and closed. To help find the most popular results,
     42 sort the result by number of stars.</p>
     43 </li>
     44 <li>
     45 <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>
     46 </li>
     47 <li>
     48 <p>If no one's reported your bug, file the bug. You can use one of these templates:</p>
     49 <ul>
     50 <li>
     51 <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>
     52 </li>
     53 <li>
     54 <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>
     55 </li>
     56 <li>
     57 <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>
     58 </li>
     59 </ul>
     60 </li>
     61 </ul>
     62 <p>Keep in mind that an issue tracker is not a user support forum. It is a list
     63 of pending technical tasks, along with information relevant for those tasks,
     64 and information about progress on those tasks including which ones might
     65 get worked on in the short term.</p>
     66 <p>This issue tracker is narrowly focused on the Android Open Source Project.
     67 Issues with retail devices need to be reported through those devices' support
     68 channels, especially for devices other than Nexus. Issues with applications
     69 that aren't part of AOSP need to be reported with those applications'
     70 developers; that is also the case for Google applications.</p>
     71 <p>Please note that we can't guarantee that any particular bug can be fixed in
     72 any particular release. To see what happens to your bug once you report it,
     73 read <a href="life-of-a-bug.html">Life of a Bug</a>.</p>
     74 <p>In general, please put as much info in bugs as you can. Just a one liner
     75 telling us something isn't working is usually useless, and will probably be
     76 closed without any action. The more detail you provide, the more likely your
     77 issue is to be resolved. Below, there are some examples of a good bug report
     78 and a poor bug report.</p>
     79 
     80 <h2 id="a-poor-bug-report">A Poor Bug Report</h2>
     81 <pre>
     82 Title: Error message
     83 
     84 When running Eclipse I get an "Internal Error" that says "See the .log file for more details".
     85 
     86 Steps to reproduce:
     87 Happens when "Object o = null". Doesn't happen when changed to "Object o".
     88 
     89 Expected results:
     90 I wouldn't get the error message--would work with Object o = null.
     91 
     92 Observed results:
     93 See above.
     94 </pre>
     95 <p>This is a poor bug report because it doesn't provide any context for the
     96 issue; is it a problem in the Dalvik virtual machine, the core framework, or
     97 something else? It also doesn't provide any code or hint on how to reproduce
     98 it. In other words, this bug report doesn't provide enough information for
     99 anyone to take action on, so it would be ignored.</p>
    100 <h2 id="a-good-bug-report">A Good Bug Report</h2>
    101 <pre>
    102 Title: Stepping over "Object o = null" causes Eclipse "Internal Error"
    103 
    104 Interesting bug, while using Eclipse 3.3.1.1 with m37a of android and the following code:
    105 
    106 package com.saville.android;
    107 
    108 import android.app.Activity;
    109 import android.os.Bundle;
    110 import android.util.Log;
    111 
    112 public class TestObjectNull extends Activity {
    113     /** Called when the activity is first created. */
    114     &#64;Override
    115     public void onCreate(Bundle icicle) {
    116         super.onCreate(icicle);
    117         setContentView(R.layout.main);
    118 
    119         Object o = null;
    120 
    121         o = "hi";
    122 
    123         Log.v(TAG, "o=" + o);
    124     }
    125 
    126     static final String TAG = "TestObjectNull";
    127 }
    128 
    129 Eclipse indicates an "Internal Error" with "See the .log file for more
    130 details" and then asks if I want to exit the workbench. This occurs when I
    131 place a break point on "setContentView(R.layout.main);" and then single
    132 step over "Object o = null;"
    133 
    134 If I change "Object o = null;" to "Object o" all is well.
    135 
    136 The last lines of the .log file are:
    137 
    138 !ENTRY org.eclipse.core.jobs 4 2 2008-01-01 13:04:15.825
    139 !MESSAGE An internal error occurred during: "has children update".
    140 !STACK 0
    141 java.lang.InternalError: Invalid signature: "&lt;null&gt;"
    142         at
    143 org.eclipse.jdi.internal.TypeImpl.signatureToTag(TypeImpl.java:307)
    144         at
    145 org.eclipse.jdi.internal.LocalVariableImpl.tag(LocalVariableImpl.java:185)
    146         at
    147 org.eclipse.jdi.internal.StackFrameImpl.getValues(StackFrameImpl.java:128)
    148         at
    149 org.eclipse.jdi.internal.StackFrameImpl.getValue(StackFrameImpl.java:73)
    150         at
    151 org.eclipse.jdt.internal.debug.core.model.JDILocalVariable.retrieveValue(JDILocalVariable.java:57)
    152         at
    153 org.eclipse.jdt.internal.debug.core.model.JDIVariable.getCurrentValue(JDIVariable.java:66)
    154         at
    155 org.eclipse.jdt.internal.debug.core.model.JDIVariable.getValue(JDIVariable.java:88)
    156         at
    157 org.eclipse.debug.internal.ui.model.elements.VariableContentProvider.hasChildren(VariableContentProvider.java:62)
    158         at
    159 org.eclipse.jdt.internal.debug.ui.variables.JavaVariableContentProvider.hasChildren(JavaVariableContentProvider.java:73)
    160         at
    161 org.eclipse.debug.internal.ui.model.elements.ElementContentProvider.updateHasChildren(ElementContentProvider.java:223)
    162         at
    163 org.eclipse.debug.internal.ui.model.elements.ElementContentProvider$3.run(ElementContentProvider.java:200)
    164         at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
    165 </pre>
    166