I'm testing my app with the new 1.6 SDK, and I ran into the error
below. The InstantiationException doesn't give me much details. I'm
wondering if anyone can give me a tip for how to debug this type of
situation. Also, if someone could point me to the source for
PhoneLayoutInflater I'd appreciate it.
Note: This application works well using the 1.5 SDK. I've tested the
1.5 SDK version a lot in preparation for the ADC2.
This problem occurs on a 1.6 Platform, HVGA, API Level 4, Google APIs
AVD.
I'll describe the code a bit, and give the actual lines which are
involved.
First, I've sub-classed RelativeLayout. I've only dynamically added a
view to the layout after inflation is complete. This RelativeLayout
sub-class is used in a ListView.
Here are the bits that actually do stuff:
package com.flingtap.done;
public CheckableRelativeLayout(Context context, AttributeSet
attrs, int defStyle) {
super(context, attrs, defStyle);
try{
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.CheckableRelativeLayout, defStyle,
0);
mRadioButtonResourceId = a.getResourceId
(R.styleable.CheckableRelativeLayout_radioButton, 0);
if( 0 == mRadioButtonResourceId ){
throw new RuntimeException("You must supply a
radioButton
attribute.");
}
a.recycle();
}catch(Exception exp){
Log.e(TAG, "ERR00019", exp);
}
}
protected void onFinishInflate() {
Log.v(TAG, "onFinishInflate() called");
super.onFinishInflate();
try{
View radioButtonView = findViewById(mRadioButtonResourceId);
assert null != radioButtonView;
mRadioButton = (RadioButton) radioButtonView;
assert null != mRadioButton;
setMinimumHeight(mRadioButton.getHeight());
}catch(Exception exp){
Log.e(TAG, "ERR0001A", exp);
}
}
I've put a break point at the first line of both the
CheckableRelativeLayout constructor and onFinishInflate method, but
neither method seems to be reached.
I instantiate this class from an XML layout like so:
<com.flingtap.done.CheckableRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.flingtap.done"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:drawSelectorOnTop="false"
app:radioButton="@+id/priority_options_list_item_radio_button"
android:paddingLeft="6dip"
android:paddingRight="6dip">
<resources>
<declare-styleable name="CheckableRelativeLayout">
<attr name="radioButton" format="reference"/>
</declare-styleable>
..
I also added a Java exception breakpoint for InflateException and I
get this stack:
PhoneLayoutInflater(LayoutInflater).createView(String, String,
AttributeSet) line: 516
PhoneLayoutInflater(LayoutInflater).createViewFromTag(String,
AttributeSet) line: 564
PhoneLayoutInflater(LayoutInflater).inflate(XmlPullParser, ViewGroup,
boolean) line: 385
...
I searched the GIT repository for the PhoneLayoutInflater, but could
not find it. Anyone know where I can find the source for this
PhoneLayoutInflater?
Finally, here is the error:
09-21 00:41:58.154: DEBUG/AndroidRuntime(773): Shutting down VM
09-21 00:41:58.154: WARN/dalvikvm(773): threadid=3: thread exiting
with uncaught exception (group=0x4001aa28)
09-21 00:41:58.234: ERROR/AndroidRuntime(773): Uncaught handler:
thread main exiting due to uncaught exception
09-21 00:41:58.264: ERROR/AndroidRuntime(773):
android.view.InflateException: Binary XML file line #7: Error
inflating class java.lang.reflect.Constructor
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.LayoutInflater.createView(LayoutInflater.java:512)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:564)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.LayoutInflater.inflate(LayoutInflater.java:385)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.LayoutInflater.inflate(LayoutInflater.java:320)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
com.flingtap.done.LeanAdapter.newView(LeanAdapter.java:48)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
com.flingtap.done.LeanAdapter.getView(LeanAdapter.java:37)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.AbsListView.obtainView(AbsListView.java:1273)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.ListView.measureHeightOfChildren(ListView.java:1147)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.ListView.onMeasure(ListView.java:1060)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.View.measure(View.java:7703)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2989)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:
888)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.LinearLayout.measureVertical(LinearLayout.java:350)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.View.measure(View.java:7703)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2989)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:
888)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.LinearLayout.measureVertical(LinearLayout.java:350)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.View.measure(View.java:7703)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2989)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.View.measure(View.java:7703)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2989)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.View.measure(View.java:7703)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.ViewRoot.performTraversals(ViewRoot.java:747)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.ViewRoot.handleMessage(ViewRoot.java:1613)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.os.Handler.dispatchMessage(Handler.java:99)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.os.Looper.loop(Looper.java:123)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.app.ActivityThread.main(ActivityThread.java:4203)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
java.lang.reflect.Method.invokeNative(Native Method)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
java.lang.reflect.Method.invoke(Method.java:521)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:791)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
dalvik.system.NativeStart.main(Native Method)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): Caused by:
java.lang.InstantiationException:
com.flingtap.done.CheckableRelativeLayout
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
java.lang.reflect.Constructor.constructNative(Native Method)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
java.lang.reflect.Constructor.newInstance(Constructor.java:446)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): at
android.view.LayoutInflater.createView(LayoutInflater.java:499)
09-21 00:41:58.264: ERROR/AndroidRuntime(773): ... 35 more
09-21 00:41:58.304: INFO/Process(580): Sending signal. PID: 773 SIG: 3
09-21 00:41:58.304: INFO/dalvikvm(773): threadid=7: reacting to signal
3
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---