Mam dziwny błąd, który wydaje się występować tylko w Samsung Galaxy S z Androidem 2.2 (testowałem aplikacja w Motorola Milestone 2 Android 2.2/Xperia X10 Android 1.6/Nexus One Android 2.2/Google G1 Android 1.5 i 1.5 emulator i na takich urządzeniach błąd nie występuje).Android: android.view.InflateException: Binarna linia pliku XML nr 13: Błąd pompowania klasy <unknown> w SAMSUNG Galaxy S
Kompletny ślad stosu jest:
ERROR/AndroidRuntime(28111): FATAL EXCEPTION: AsyncTask #2
ERROR/AndroidRuntime(28111): java.lang.RuntimeException: An error occured while executing doInBackground()
ERROR/AndroidRuntime(28111): at android.os.AsyncTask$3.done(AsyncTask.java:200)
ERROR/AndroidRuntime(28111): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
ERROR/AndroidRuntime(28111): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
ERROR/AndroidRuntime(28111): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
ERROR/AndroidRuntime(28111): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
ERROR/AndroidRuntime(28111): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
ERROR/AndroidRuntime(28111): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
ERROR/AndroidRuntime(28111): at java.lang.Thread.run(Thread.java:1096)
ERROR/AndroidRuntime(28111): Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.createView(LayoutInflater.java:513)
ERROR/AndroidRuntime(28111): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
ERROR/AndroidRuntime(28111): at my.package.MyClass.b(Unknown Source)
ERROR/AndroidRuntime(28111): at my.package.MyClass.a(Unknown Source)
ERROR/AndroidRuntime(28111): at my.package.MyClass.updateUI(Unknown Source)
ERROR/AndroidRuntime(28111): at my.package.MyClass.UpdateUITask.doInBackground(Unknown Source)
ERROR/AndroidRuntime(28111): at android.os.AsyncTask$2.call(AsyncTask.java:185)
ERROR/AndroidRuntime(28111): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
ERROR/AndroidRuntime(28111): ... 4 more
ERROR/AndroidRuntime(28111): Caused by: java.lang.reflect.InvocationTargetException
ERROR/AndroidRuntime(28111): at android.widget.EditText.<init>(EditText.java:101)
ERROR/AndroidRuntime(28111): at java.lang.reflect.Constructor.constructNative(Native Method)
ERROR/AndroidRuntime(28111): at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
ERROR/AndroidRuntime(28111): at android.view.LayoutInflater.createView(LayoutInflater.java:500)
ERROR/AndroidRuntime(28111): ... 16 more
ERROR/AndroidRuntime(28111): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
ERROR/AndroidRuntime(28111): at android.os.Handler.<init>(Handler.java:121)
ERROR/AndroidRuntime(28111): at android.view.GestureDetector$GestureHandler.<init>(GestureDetector.java:250)
ERROR/AndroidRuntime(28111): at android.view.GestureDetector.<init>(GestureDetector.java:370)
ERROR/AndroidRuntime(28111): at android.view.GestureDetector.<init>(GestureDetector.java:347)
ERROR/AndroidRuntime(28111): at android.view.GestureDetector.<init>(GestureDetector.java:331)
ERROR/AndroidRuntime(28111): at android.widget.EditText.<init>(EditText.java:113)
ERROR/AndroidRuntime(28111): ... 20 more
Przede wszystkim, co się dzieje? Jaki jest główny błąd? Can't create handler inside thread that has not called Looper.prepare()
lub android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
?
ten wydaje się występować, gdy jestem pompowania View
którego XML (R.layout.field_editable_label_value_numeric) Linia 13 jest:
<EditText android:id="@+id/editableLabel"
android:layout_gravity="left|center_vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:textColor="@color/black"
android:textStyle="bold" />
EDIT: Zapomniałem powiedzieć, że używam PROGUARD, nie wiem jeśli to ma jakiś wpływ na ten problem (nie sądzę).
Dodałem też kod, gdzie myślę, że problem się dzieje:
MyClass.a:
final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ArrayList<View> views = MyClass.b(inflater);
runOnUiThread(new Runnable() {
@Override
public void run() {
LinearLayout mainLayout = (LinearLayout) findViewById(R.id.ItemLinearLayout);
//clear UI
mainLayout.removeAllViews();
//re-set all views
for (View view : views) {
mainLayout.addView(view);
}
}
}
MyClass.b:
final ArrayList<View> viewsToAdd = new ArrayList<View>();
View view = inflater.inflate(R.layout.field_editable_label_value_numeric, null, true);
viewsToAdd.add(view);
return views;
Publikuj kod, w którym nadpisujesz widok – dymmeh
@ dymmeh Właśnie edytowałem i dodałem kod – pandre