2016-03-29 49 views
0

我正在構建一個小應用程序,昨天工作得很好,但今天添加按鈕後沒有。我恢復了所有的更改,但仍然出現相同的錯誤,應用程序內存不足。這是代碼和堆棧跟蹤:Android工作室應用程序隨機耗盡內存

public class MainActivity extends AppCompatActivity { 
private MainActivity mainActivity = new MainActivity(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
}} 

的logcat:http://pastebin.com/UdAFp32h

我發現在logcat的一件趣事:

03-29 14:34:42.067 20964-20964/com.example.antongustafsson.csnappen 
A/art:art/runtime/runtime.cc:291] at 
com.example.antongustafsson.csnappen.MainActivity.<init>(MainActivity.java:15) 

03-29 14:34:42.067 20964-20964/com.example.antongustafsson.csnappen 
A/art: art/runtime/runtime.cc:291] at 
com.example.antongustafsson.csnappen.MainActivity.<init>(MainActivity.java:16) 

03-29 14:34:42.067 20964-20964/com.example.antongustafsson.csnappen 
A/art: art/runtime/runtime.cc:291] at 
com.example.antongustafsson.csnappen.MainActivity.<init>(MainActivity.java:16) 

03-29 14:34:42.067 20964-20964/com.example.antongustafsson.csnappen 
A/art: art/runtime/runtime.cc:291] at 
com.example.antongustafsson.csnappen.MainActivity.<init>(MainActivity.java:16) 

03-29 14:34:42.067 20964-20964/com.example.antongustafsson.csnappen 
A/art: art/runtime/runtime.cc:291] ... **repeated 261584 times** 

它看起來像我有一個無限循環下去,除非我不要。有人知道我可以嘗試什麼嗎?爲什麼這個錯誤是隨機發生的?

+1

你爲什麼要創建在MainActivity內'MainActivity'? –

+0

如果您需要'MainActivity'類的實例,只需使用'this'關鍵字即可。 – Rohan

+0

是的,我剛剛意識到這一點。該死的,我覺得我累了!謝謝。 – Baxtex

回答

9

MainActivity類repeaditly創建的MainActivity新實例,因爲變量聲明和initalization

MainActivity mainActivity = new MainActivity(); 

將導致無限遞歸,做創建的MainActivity實例。