Это известная проблема, вот билет в трекер ошибок Android: Проблема 6636: NPE в org.apache.harmony.luni.lang.reflect.ListOfTypes
Это было исправлено в Android 2.3, но не было перенесено в более ранние выпуски Android, поэтому вы видите сбой в Android 2.2.
Чтобы быть более сложным: если вы запускаете этот код (расширенную версию вашего собственного кода) на Android 2.2:
public class ReproduceBugActivity extends Activity {
private static final String TAG = "ReproduceBugActivity";
private ArrayList<Object> mArrayList;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
String className = null;
Field field = getClass().getDeclaredField("mArrayList");
if (field.getType() == java.util.ArrayList.class)
className = ((ParameterizedType)field.getGenericType()).toString();
Log.i(TAG, "className = " + className);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Вы получите это исключение:
java.lang.NullPointerException
at org.apache.harmony.luni.lang.reflect.ListOfTypes.length(ListOfTypes.java:47)
at org.apache.harmony.luni.lang.reflect.ImplForType.toString(ImplForType.java:83)
at com.reproducebug.ReproduceBugActivity.onCreate(ReproduceBugActivity.java:23)
из-за вышеупомянутой ошибки в реализации отражения Java. В Android 2.3 ошибка была исправлена, и вместо этого вы увидите это в logcat:
I/ReproduceBugActivity(23449): className = java.util.ArrayList<java.lang.Object>
Исключение com.sun.jdi.InvocationException
, которое вы видите, не имеет к этому никакого отношения, насколько я могу судить.