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