2016-03-29 3 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:私は無限ループが私を除いて、行くしまったように見えます

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** 

http://pastebin.com/UdAFp32h

私はLogcatで何か面白いものを見つけましたしない。誰でも私が試すことができることを知っていますか?なぜこのエラーはランダムに発生するのですか?変数の宣言とinitalization

MainActivity mainActivity = new MainActivity(); 

MainActivityのインスタンスを作成し無限の再帰につながるので、

+1

を追跡するためにEclipseのメモリアナライザツールを使用してみてください? –

+0

'MainActivity'クラスのインスタンスが必要な場合は、単に' this'キーワードを使用してください。 – Rohan

+0

はい、私はこれを実現しました。やあ、疲れていると思うよ!ありがとう。 – Baxtex

答えて

9

あなたのクラスMainActivityはrepeaditly、MainActivityの新しいインスタンスを作成します。メモリとあなたの将来の問題について

0

: なぜあなたはMainActivity内部 `MainActivity`を作成しているあなたの記憶をプロファイリングし、潜在的なメモリリークに

http://www.eclipse.org/mat/

関連する問題