是什么导致"RuntimeException:二进制XML文件行#20:您必须提供layout_height属性." (怀疑是ActionBarScherlock)?

jan*_*not 5 crash android android-layout runtimeexception actionbarsherlock

我有ActionBarScherlock的应用程序,我使用ACRA.我收到一些用户的崩溃报告,但有以下错误:

"java.lang.RuntimeException: Binary XML file line #20: You must supply a layout_height attribute.
    at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)
    at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3602)
    at android.view.ViewGroup$LayoutParams.<init>(ViewGroup.java:3554)
    at android.widget.AbsListView$LayoutParams.<init>(AbsListView.java:4322)
    at android.widget.AbsListView.generateLayoutParams(AbsListView.java:4116)
    at android.widget.AbsListView.generateLayoutParams(AbsListView.java:74)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
    at android.webkit.WebTextView$AutoCompleteAdapter.getView(WebTextView.java:650)
    at android.widget.AbsListView.obtainView(AbsListView.java:1430)
    at android.widget.AutoCompleteTextView$DropDownListView.obtainView(AutoCompleteTextView.java:1548)
    at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
    at android.widget.AutoCompleteTextView.buildDropDown(AutoCompleteTextView.java:1376)
    at android.widget.AutoCompleteTextView.showDropDown(AutoCompleteTextView.java:1140)
    at android.widget.AutoCompleteTextView.updateDropDownForFilter(AutoCompleteTextView.java:1022)
    at android.widget.AutoCompleteTextView.onFilterComplete(AutoCompleteTextView.java:1005)
    at android.widget.Filter$ResultsHandler.handleMessage(Filter.java:285)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:130)
    at android.app.ActivityThread.main(ActivityThread.java:3717)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:507)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
    at dalvik.system.NativeStart.main(Native Method)"
Run Code Online (Sandbox Code Playgroud)

当然我试图谷歌它发现它很可能是由ActionBarScherlock引起的(我注意到遇到此错误的每个用户都使用android 2.3.*)但是还没有找到解决方案.有点令人不安的是我无法在我自己的2.3.*设备上重现这个错误......

那么,是什么导致了这个错误?

小智 14

在我的情况下,这是由于ActionBarsherlock的问题.

在我的Android清单中我有android:theme ="@ style/AppTheme"然后当你去样式时,我看到我的AppTheme的父母是"AppBaseTheme".这是问题所在!

<style name="AppTheme" parent="AppBaseTheme">
Run Code Online (Sandbox Code Playgroud)

我把它改成了

<style name="AppTheme" parent="Theme.Sherlock">
Run Code Online (Sandbox Code Playgroud)

我的问题解决了.


jos*_*eph 2

我们的#1 崩溃之一就是由于这个问题造成的,尤其是在中兴设备上。虽然操作栏在大多数屏幕上都可以工作,但当用户与 Webview Edittext/InputBox 交互时,我们会遇到此崩溃。崩溃是由于 Web 视图上的自动完成而发生的。禁用自动完成似乎可以消除崩溃。为什么自动完成应该与操作栏有关仍然是一个谜。

这里我们仅针对 ZTE 设备禁用自动完成功能。如果我们在其他设备上遇到问题,我们稍后可能会扩展该列表。

    public static boolean disableWebViewAutoCompleteForDevicesThatCrash(WebView webView)
{
    // We may add some other bizarre devices to this list if the ZTE fix works well.
    if ("ZTE".equals(Build.MANUFACTURER))
    {
        webView.getSettings().setSaveFormData(false);
        webView.clearFormData();
        return true;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)