Java 这个应用程序只工作了一小会儿。为什么?

Java 这个应用程序只工作了一小会儿。为什么?,java,android,xml,android-activity,android-logcat,Java,Android,Xml,Android Activity,Android Logcat,应用程序的打开和关闭速度更快。我(再次)看到了代码,没有错误。我认为这与字符串、数组和图像有关,因为当我在Main活动中取消注释Integer[]imgid时,应用程序就会工作 MainActivity(java): public class MainActivity extends FragmentActivity { private DrawerLayout mDrawerLayout; //DrawerLayout é o menu lateral que expande ao

应用程序的打开和关闭速度更快。我(再次)看到了代码,没有错误。我认为这与字符串、数组和图像有关,因为当我在Main活动中取消注释Integer[]imgid时,应用程序就会工作

MainActivity(java):

public class MainActivity extends FragmentActivity {  
    private DrawerLayout mDrawerLayout; //DrawerLayout é o menu lateral que expande ao clicar no ícone da sua aplicação ou simplesmente quando você arrasta a tela da esquerda para a direita.
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle; // CharSequence como o nome indica é uma sequencia de char, ou seja, texto 
    private CharSequence mTitle; // CharSequence como o nome indica é uma sequencia de char, ou seja, texto 
    private String[] mPlanetTitles;
    private ImageView mIcon;
    private Integer[] random_imgs;

/*    Integer[] imgid={
            R.drawable.ic_action_search,
            R.drawable.ic_launcher,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,

    };*/

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // responsável por exibir a tela da minha aplicação , baseado nos layouts xml.
        mTitle = mDrawerTitle = getTitle(); // Gets the title of the frame (String) 
        mPlanetTitles = getResources().getStringArray(R.array.planets_array); // Pela minha lista de string com o nome dos planetas
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); // Finds a view that was identified by the id attribute from the XML that was processed in onCreate(Bundle).

        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
        // set up the drawer's list view with items and click listener
        // ira colocar no list view localizado do drawer_layout, um layout do tipo drawer_list_item, usando os nomes dos planetas
     //   mDrawerList.setAdapter(new ArrayAdapter<String>(this,
       //         R.layout.drawer_list_icon, android.R.id.text2, mPlanetTitles));

        CustomListAdapter adapter = new CustomListAdapter(this,mPlanetTitles,random_imgs);
        mDrawerList.setAdapter(adapter);
        //Registrar um callback para ser chamado quando um produto neste AdapterView foi clicado .
        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
...
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] itemname;
private final Integer[] imgid;

public CustomListAdapter(Activity context, String[] itemname,
        Integer[] imgid) {
    super(context, R.layout.drawer_list_icon, itemname);
    // TODO Auto-generated constructor stub

this.context= context;
this.itemname=itemname;
this.imgid=imgid;


}


public View getView(int position, View view, ViewGroup parent){

    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.drawer_list_icon,null,true);

    TextView txtTitle = (TextView) rowView.findViewById(android.R.id.text2);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);

    txtTitle.setText(itemname[position]);
    imageView.setImageResource(imgid[position]);
            return rowView;

  }

}
...
  <array name="random_imgs">
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
    </array>
    ...
public类MainActivity扩展了FragmentActivity{
私人抽屉布局mDrawerLayout;//抽屉布局的菜单横向可扩展为一个简单的抽屉布局,以满足您的需求。
私有列表视图mDrawerList;
私有操作bardrawertoggle mDrawerToggle;
私有CharSequence mDrawerTitle;//CharSequence como o nome indicaéuma sequencia de char,ou seja,texto
private CharSequence mTitle;//CharSequence como o nome indicaéuma sequencia de char,ou seja,texto
私有字符串[]mplanettiles;
米肯私人影像;
私有整数[]随机\u imgs;
/*整数[]imgid={
R.drawable.ic\u action\u search,
R.drawable.ic_发射器,
R.drawable.ic\u action\u search,
R.drawable.action\u search,
R.drawable.ic\u action\u search,
R.drawable.action\u search,
R.drawable.ic\u action\u search,
R.drawable.action\u search,
R.drawable.ic\u action\u search,
};*/
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//responseável por exibir a tela da minha aplicaço,baseado nos layouts xml。
mTitle=mDrawerTitle=getTitle();//获取帧的标题(字符串)
mPlanetTitles=getResources().getStringArray(R.array.planets_array);//Pela minha lista de string com o nome dos planetas
mDrawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout);//从onCreate(Bundle)中处理的XML中查找由id属性标识的视图。
mDrawerList=(ListView)findViewById(R.id.left\u抽屉);
//设置抽屉打开时覆盖主要内容的自定义阴影
mDrawerLayout.setDrawerShadow(R.drawable.drawer\u shadow,GravityCompat.START);
//使用项目设置抽屉的列表视图,然后单击listener
//ira colocar无列表视图本地化做抽屉布局,嗯布局做tipo抽屉列表项目,usando os nomes dos planetas
//mDrawerList.setAdapter(新阵列适配器,
//R.layout.drawer_list_图标,android.R.id.text2,mPlanetTitles);
CustomListAdapter=新的CustomListAdapter(这是mPlanetTitles,random_imgs);
mDrawerList.setAdapter(适配器);
//注册人回拨电话给chamado quando公司的生产商neste AdapterView foi clicado公司。
setOnItemClickListener(新的DrawerItemClickListener());
...
CustomListAdapter(java):

public class MainActivity extends FragmentActivity {  
    private DrawerLayout mDrawerLayout; //DrawerLayout é o menu lateral que expande ao clicar no ícone da sua aplicação ou simplesmente quando você arrasta a tela da esquerda para a direita.
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle; // CharSequence como o nome indica é uma sequencia de char, ou seja, texto 
    private CharSequence mTitle; // CharSequence como o nome indica é uma sequencia de char, ou seja, texto 
    private String[] mPlanetTitles;
    private ImageView mIcon;
    private Integer[] random_imgs;

/*    Integer[] imgid={
            R.drawable.ic_action_search,
            R.drawable.ic_launcher,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,

    };*/

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // responsável por exibir a tela da minha aplicação , baseado nos layouts xml.
        mTitle = mDrawerTitle = getTitle(); // Gets the title of the frame (String) 
        mPlanetTitles = getResources().getStringArray(R.array.planets_array); // Pela minha lista de string com o nome dos planetas
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); // Finds a view that was identified by the id attribute from the XML that was processed in onCreate(Bundle).

        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
        // set up the drawer's list view with items and click listener
        // ira colocar no list view localizado do drawer_layout, um layout do tipo drawer_list_item, usando os nomes dos planetas
     //   mDrawerList.setAdapter(new ArrayAdapter<String>(this,
       //         R.layout.drawer_list_icon, android.R.id.text2, mPlanetTitles));

        CustomListAdapter adapter = new CustomListAdapter(this,mPlanetTitles,random_imgs);
        mDrawerList.setAdapter(adapter);
        //Registrar um callback para ser chamado quando um produto neste AdapterView foi clicado .
        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
...
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] itemname;
private final Integer[] imgid;

public CustomListAdapter(Activity context, String[] itemname,
        Integer[] imgid) {
    super(context, R.layout.drawer_list_icon, itemname);
    // TODO Auto-generated constructor stub

this.context= context;
this.itemname=itemname;
this.imgid=imgid;


}


public View getView(int position, View view, ViewGroup parent){

    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.drawer_list_icon,null,true);

    TextView txtTitle = (TextView) rowView.findViewById(android.R.id.text2);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);

    txtTitle.setText(itemname[position]);
    imageView.setImageResource(imgid[position]);
            return rowView;

  }

}
...
  <array name="random_imgs">
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
    </array>
    ...
导入android.app.Activity;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
公共类CustomListAdapter扩展了ArrayAdapter{
私人最终活动背景;
私有最终字符串[]itemname;
私有最终整数[]imgid;
公共CustomListAdapter(活动上下文,字符串[]itemname,
整数[]imgid){
超级(上下文、右布局、抽屉列表图标、项目名称);
//TODO自动生成的构造函数存根
this.context=context;
this.itemname=itemname;
this.imgid=imgid;
}
公共视图getView(内部位置、视图视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气机。充气(右布局。抽屉列表图标,空,真);
TextView txtTitle=(TextView)rowView.findViewById(android.R.id.text2);
ImageView ImageView=(ImageView)rowView.findViewById(R.id.imageView1);
setText(项目名称[位置]);
setImageResource(imgid[position]);
返回行视图;
}
}
字符串(xml):

public class MainActivity extends FragmentActivity {  
    private DrawerLayout mDrawerLayout; //DrawerLayout é o menu lateral que expande ao clicar no ícone da sua aplicação ou simplesmente quando você arrasta a tela da esquerda para a direita.
    private ListView mDrawerList; 
    private ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle; // CharSequence como o nome indica é uma sequencia de char, ou seja, texto 
    private CharSequence mTitle; // CharSequence como o nome indica é uma sequencia de char, ou seja, texto 
    private String[] mPlanetTitles;
    private ImageView mIcon;
    private Integer[] random_imgs;

/*    Integer[] imgid={
            R.drawable.ic_action_search,
            R.drawable.ic_launcher,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,
            R.drawable.action_search,
            R.drawable.ic_action_search,

    };*/

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); // responsável por exibir a tela da minha aplicação , baseado nos layouts xml.
        mTitle = mDrawerTitle = getTitle(); // Gets the title of the frame (String) 
        mPlanetTitles = getResources().getStringArray(R.array.planets_array); // Pela minha lista de string com o nome dos planetas
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); // Finds a view that was identified by the id attribute from the XML that was processed in onCreate(Bundle).

        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
        // set up the drawer's list view with items and click listener
        // ira colocar no list view localizado do drawer_layout, um layout do tipo drawer_list_item, usando os nomes dos planetas
     //   mDrawerList.setAdapter(new ArrayAdapter<String>(this,
       //         R.layout.drawer_list_icon, android.R.id.text2, mPlanetTitles));

        CustomListAdapter adapter = new CustomListAdapter(this,mPlanetTitles,random_imgs);
        mDrawerList.setAdapter(adapter);
        //Registrar um callback para ser chamado quando um produto neste AdapterView foi clicado .
        mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
...
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CustomListAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] itemname;
private final Integer[] imgid;

public CustomListAdapter(Activity context, String[] itemname,
        Integer[] imgid) {
    super(context, R.layout.drawer_list_icon, itemname);
    // TODO Auto-generated constructor stub

this.context= context;
this.itemname=itemname;
this.imgid=imgid;


}


public View getView(int position, View view, ViewGroup parent){

    LayoutInflater inflater = context.getLayoutInflater();
    View rowView = inflater.inflate(R.layout.drawer_list_icon,null,true);

    TextView txtTitle = (TextView) rowView.findViewById(android.R.id.text2);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1);

    txtTitle.setText(itemname[position]);
    imageView.setImageResource(imgid[position]);
            return rowView;

  }

}
...
  <array name="random_imgs">
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
        <item>@drawable/ic_action_search</item>
        <item>@drawable/ic_launcher</item>
    </array>
    ...
。。。
@牵引式/集成电路发射器
@可绘图/ic\u操作\u搜索
@牵引式/集成电路发射器
@可绘图/ic\u操作\u搜索
@牵引式/集成电路发射器
@可绘图/ic\u操作\u搜索
@牵引式/集成电路发射器
@可绘图/ic\u操作\u搜索
@牵引式/集成电路发射器
...
这是我申请的日志。 Logcat

11-15 12:18:59.282: D/OpenGLRenderer(21513): Enabling debug mode 0
11-15 12:18:59.302: D/dalvikvm(21513): GC_FOR_ALLOC freed 146K, 18% free 3187K/3852K, paused 10ms, total 10ms
11-15 12:18:59.302: I/dalvikvm-heap(21513): Grow heap (frag case) to 4.241MB for 1152012-byte allocation
11-15 12:18:59.312: D/dalvikvm(21513): GC_FOR_ALLOC freed <1K, 14% free 4312K/4980K, paused 10ms, total 10ms
11-15 12:18:59.352: D/AndroidRuntime(21513): Shutting down VM
11-15 12:18:59.352: W/dalvikvm(21513): threadid=1: thread exiting with uncaught exception (group=0x64cb4b20)
11-15 12:18:59.352: D/AndroidRuntime(21513): procName from cmdline: com.examplo.myapp
11-15 12:18:59.352: E/AndroidRuntime(21513): in writeCrashedAppName, pkgName :com.examplo.myapp
11-15 12:18:59.352: D/AndroidRuntime(21513): file written successfully with content: com.examplo.myapp StringBuffer : ;com.examplo.myapp
11-15 12:18:59.282:D/OpenGLRenderer(21513):启用调试模式0
11-15 12:18:59.302:D/dalvikvm(21513):释放146K的所有数据的GC_,18%释放3187K/3852K,暂停10ms,总计10ms
11-15 12:18:59.302:I/dalvikvm堆(21513):为1152012字节分配将堆(frag大小写)增长到4.241MB

11-15 12:18:59.312:D/dalvikvm(21513):GC_FOR_ALLOC freed“线程以未捕获的异常退出”尝试并捕获它,这样您将理解
11-15 12:18:59.352:W/dalvikvm(21513):threadid=1:线程以未捕获的异常退出(group=0x64cb4b20)
——看看它并捕获它您在说什么random_imgs
为空,因为您从未初始化它。