5

私は 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)"

もちろん、Google で調べてみたところ、ActionBarScherlock が原因である可能性が高いことがわかりました (このエラーに遭遇したすべてのユーザーが android 2.3.* を使用していることに気付きました) が、解決策は見つかりませんでした。自分の 2.3.* デバイスでこのエラーを再現できないのは少し当惑します...

では、このエラーの原因は何ですか?

4

4 に答える 4

14

私の場合、これは ActionBarsherlock の問題が原因でした。

私の Android マニフェストには android:theme="@style/AppTheme" があり、スタイルに移動すると、AppTheme の親が "AppBaseTheme" であることがわかりました。これが問題でした!

<style name="AppTheme" parent="AppBaseTheme">

これをに変更しました

<style name="AppTheme" parent="Theme.Sherlock">

そして、私の問題は解決しました。

于 2013-03-29T12:40:22.307 に答える
2

このlayout_heightインスタンスの は、 、、およびの 3 つの場所で定義されて?attr/actionBarSizeいる の値を持つテーマ属性であると定義されています。@dimen/action_bar_heightvalues/values-land/values-sw600dp/

これは通常、OEM がリソース システムをいじくり回して、このチェーンの一部が正しく読み込まれない原因となっている場合に発生します。私が知る限り、私たちに本当にできることは何もありません。

于 2013-01-25T20:54:37.007 に答える
2

私たちの #1 のクラッシュの 1 つは、特に ZTE デバイスで、この問題が原因でした。アクションバーはほとんどの画面で機能していましたが、ユーザーが Webview Edittext/InputBox を操作したときにこのクラッシュが発生していました。クラッシュは、Webview でのオートコンプリートの結果として発生しました。オートコンプリートを無効にすると、クラッシュが解消されたようです。なぜオートコンプリートが Actionbar と関係があるのか​​はまだ謎です。

ここでは、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;
    }
}
于 2013-09-09T18:51:05.503 に答える
2

私は同じ問題を抱えていて、変更することで解決しましたAndroidManifest.xml。特定のアクティビティまたは完全なアプリケーションのテーマを に設定するTheme.Sherlock.Light必要があります (指定できるのは のみだと思いますTheme.Sherlock)。

コードでは次のようになります。

<application 
    ... 
    android:theme="@style/Theme.Sherlock.Light">

また

<activity
    ... 
    android:theme="@style/Theme.Sherlock.Light">
于 2013-03-11T01:39:20.660 に答える