简体   繁体   English

应用程序崩溃并出现java.lang.stackOverflow异常

[英]App crashes with java.lang.stackOverflow exception

i am developing app in which i am trying to start an Activity named "PensionStatusActivity" from "MainActivity" simply thru Intent. 我正在开发应用程序,其中我试图通过Intent从“ MainActivity”启动名为“ PensionStatusActivity”的活动。

This is calling line in MainActivity. 这是MainActivity中的呼叫行。

startActivity(new Intent(MainActivity.this, PensionStatusActivity.class));

PensionStatusActivity activity populating an XML as it's layout which is as.. PensionStatusActivity活动按原样填充XML。

activity_pension_status.xml activity_pension_status.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="2sp"
   android:orientation="vertical">

    <LinearLayout
        android:id="@+id/llGo"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="5sp"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5sp"
            android:paddingLeft="10sp"
            android:background="#D4D8D1"
            android:textColor="#332C2F"
            android:textStyle="bold"
            android:text="@string/button_pension_status"/>

        <EditText
            android:id="@+id/etSamagraIdStatus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/et_back"
            android:paddingLeft="10sp"
            android:imeActionLabel="Done"
            android:singleLine="true"
            android:inputType="number"
            android:maxLength="9"
            android:layout_marginTop="20sp"
            android:hint="Samagra ID"/>
        <Button
            android:id="@+id/btnGetStatus"
            android:layout_height="40sp"
            android:layout_width="wrap_content"
            android:background="@drawable/button_go"
            android:textColor="#FFFFFF"
            android:layout_marginTop="10sp"
            android:text="स्थिति देखें "/>


            <!--Table View-->
            <TableLayout
                android:id="@+id/tlMemberProfile"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:padding="3sp"
                android:background="#D8D8D8"
                android:layout_marginTop="5sp">

                <TableRow
                    style="@style/trSchemesDetail">
                    <TextView
                        style="@style/tvSchemeDetailTable"
                        android:text="Name"/>
                    <TextView
                        android:id="@+id/tvName"
                        style="@style/tvSchemeDetailTable"
                        />
                </TableRow>
                <TableRow
                    style="@style/trSchemesDetail">
                    <TextView
                        style="@style/tvSchemeDetailTable"
                        android:text="Gender"/>
                    <TextView
                        android:id="@+id/tvGender"
                        style="@style/tvSchemeDetailTable"
                        />
                </TableRow>
                <TableRow
                    style="@style/trSchemesDetail">
                    <TextView
                        style="@style/tvSchemeDetailTable"
                        android:text="Date Of Birth"/>
                    <TextView
                        android:id="@+id/tvDOB"
                        style="@style/tvSchemeDetailTable"
                        />
                </TableRow>
            </TableLayout>


        <ListView
            android:id="@+id/lvPensionStatus"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    <include
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/footer"/>

</LinearLayout>
</LinearLayout>

In PensionStatusActivity i have used below line to populate above xml. 在PensionStatusActivity中,我使用下面的行来填充上面的xml。

setContentView(R.layout.activity_pension_status);

My problem is when control come over this populating line app get crashed. 我的问题是当控制权超过此填充线路应用程序时崩溃了。 with java.lang.stackOverFlowException on Samsung Galexy Tab 4.4 Android OS. Samsung Galexy Tab 4.4 Android OS上的java.lang.stackOverFlowException While running fine with other devices.. 与其他设备一起正常运行时。

log is as follow 日志如下

java.lang.StackOverflowError
    at java.lang.ref.FinalizerReference.<init>(FinalizerReference.java:42)
    at java.lang.ref.FinalizerReference.add(FinalizerReference.java:54)
    at android.content.res.XmlBlock$Parser.<init>(XmlBlock.java:79)
    at android.content.res.XmlBlock.newParser(XmlBlock.java:72)
    at android.content.res.Resources.loadXmlResourceParser(Resources.java:3707)
    at android.content.res.Resources.loadDrawable(Resources.java:3440)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
    at android.content.res.Resources.loadDrawable(Resources.java:3442)
    at android.content.res.Resources.getDrawable(Resources.java:1924)
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:176)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:990)
    at android.gr

Please help what is wrong. 请帮助出什么问题。

Thanks in advance.. 提前致谢..

According to stacktrace, this is a circular reference in your drawable resources. 根据stacktrace,这是可绘制资源中的循环引用。 Try to do the following: 尝试执行以下操作:

  1. Comment out all children in your layout. 注释掉布局中的所有子项。
  2. Run ant test. 运行蚂蚁测试。 App should work. 应用程序应该工作。
  3. Uncomment one child view 取消注释一个子视图
  4. Run and test. 运行并测试。 If okay, go to the point 3. If not, last added view contains a reference to the broken resource 如果可以,请转到第3点。否则,最后添加的视图包含对损坏资源的引用。
  5. Inspect all drawable resources used by found view 检查找到的视图使用的所有可绘制资源

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM