3

我目前正在制作一个 android 应用程序并试图解决这个问题。每当我编译我的代码并将其加载到模拟器上时,它最初都会加载以下错误:

05-22 00:12:54.753: W/dalvikvm(1631): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
05-22 00:12:54.783: E/AndroidRuntime(1631): FATAL EXCEPTION: main
05-22 00:12:54.783: E/AndroidRuntime(1631): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.LoadedApk.makeApplication(LoadedApk.java:482)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3938)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.ActivityThread.access$1300(ActivityThread.java:123)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1185)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.os.Looper.loop(Looper.java:137)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.ActivityThread.main(ActivityThread.java:4424)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at java.lang.reflect.Method.invokeNative(Native Method)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at java.lang.reflect.Method.invoke(Method.java:511)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at dalvik.system.NativeStart.main(Native Method)
05-22 00:12:54.783: E/AndroidRuntime(1631): Caused by: java.lang.NullPointerException
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:362)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.LoadedApk.getClassLoader(LoadedApk.java:305)
05-22 00:12:54.783: E/AndroidRuntime(1631):     at android.app.LoadedApk.makeApplication(LoadedApk.java:474)
05-22 00:12:54.783: E/AndroidRuntime(1631):     ... 11 more

然后它用强制关闭将我踢出应用程序,但它很快就会自动启动并运行良好。如果我关闭应用程序并杀死它,它不会强制关闭或任何东西。就在它最初在模拟器上启动时。我想知道这是什么原因。以下是第二次加载后弹出的消息:

05-22 00:13:07.113: D/dalvikvm(1664): GC_FOR_ALLOC freed 38K, 3% free 9110K/9347K, paused 61ms
05-22 00:13:07.165: I/dalvikvm-heap(1664): Grow heap (frag case) to 12.525MB for 3732496-byte allocation
05-22 00:13:07.263: D/dalvikvm(1664): GC_CONCURRENT freed 1K, 2% free 12754K/12999K, paused 5ms+5ms
05-22 00:13:07.543: D/dalvikvm(1664): GC_FOR_ALLOC freed <1K, 2% free 12755K/12999K, paused 37ms
05-22 00:13:07.573: I/dalvikvm-heap(1664): Grow heap (frag case) to 14.502MB for 2073616-byte allocation
05-22 00:13:07.753: D/dalvikvm(1664): GC_CONCURRENT freed <1K, 2% free 14780K/15047K, paused 5ms+5ms
05-22 00:13:08.033: D/gralloc_goldfish(1664): Emulator without GPU emulation detected.

我将为您提供你们需要的任何和所有编码,但不幸的是我不知道这个错误会出现在哪里?我的程序中有很多文件,所以如果可能的话,我宁愿不发布所有文件。

抱歉,这个问题没有提供太多信息,我只是不知道该给您什么信息(如果有意义的话?)请回复并告诉我您需要哪些信息,并感谢您的任何和所有帮助

编辑

这是我的splash.java

package com.food;

import com.food.odu.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

//creating a splash effect so the company logo appears for a few seconds before the program
public class Splash extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);  //defined the reference id 'splash' in the splash.xml file

        Thread timer = new Thread(){    //creates a new timer for our splash effect
            public void run(){   //runs the splash program
                try{
                     sleep(5000);    //attempts to run the splash picture for 5000 milliseconds (5 seconds)
                   } catch(InterruptedException e){
                      e.printStackTrace();    //if that doesn't work, this line is debugging information
                      }finally{
                        Intent openStartingPoint = new Intent("com.rhodes.jacob.COM.FOOD.ODUACTIVITY"); //creating an intent which is basically a reference to the Android Manifest
                        startActivity(openStartingPoint);                                               //file saying that when this intent is called, to go to the address at that name in the Android Manifest file
                      }
                  }

        };

        timer.start();

    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        finish();
    }



}

这是我的 oduActivity.java (我想我的主要)

package com.food;


import com.food.odu.R;
//import com.food.odu.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;



public class oduActivity extends Activity {
    /** Called when the activity is first created. */

    Button Cafe1201, Legends, Rogers, Faculty;
    TextView display;


    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);        
        setContentView(R.layout.main);

        Button Cafe1201 = (Button)findViewById(R.id.cafe1201);
        Button Legends = (Button)findViewById(R.id.legends);
        Button Rogers = (Button)findViewById(R.id.rogers);
        Button Faculty = (Button)findViewById(R.id.fac_n_staff);

  //    Button Legal = (Button)findViewById(R.id.legal);
  //    Button Other = (Button)findViewById(R.id.other);
  //    Button About = (Button)findViewById(R.id.aboutUs);
        //Button Mainpage = (Button)findViewById(R.id.main_page);

        //Changes page to the cafe1201 page
        Cafe1201.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent whichCafe = new Intent(oduActivity.this,cafe1201.class);
                startActivity(whichCafe);

            }
        });


         //changes page to the legends page
          Legends.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    Intent whichCafe = new Intent(oduActivity.this,legends.class);
                    startActivity(whichCafe);

                }
            }); 


          //changes page to the rogers page
          Rogers.setOnClickListener(new View.OnClickListener() {
              public void onClick(View v) {
                  Intent whichCafe = new Intent(oduActivity.this,rogers.class);
                  startActivity(whichCafe);

              }
          }); 


          //changes page to the faculty page
          Faculty.setOnClickListener(new View.OnClickListener() {
              public void onClick(View v) {
                  Intent whichCafe = new Intent(oduActivity.this,faculty.class);
                  startActivity(whichCafe);

              }
          }); 


    }

    //Options menu
    @Override
    public boolean onCreateOptionsMenu(android.view.Menu menu) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu);
        MenuInflater blowUp = getMenuInflater();
        blowUp.inflate(R.menu.menu, menu);
        return true;

    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch(item.getItemId()){

        case R.id.main_page:

            Intent whichOption = new Intent(oduActivity.this,oduActivity.class);
            startActivity(whichOption);
            break;
        case R.id.other:

            whichOption = new Intent(oduActivity.this,menu.class);
            startActivity(whichOption);
            break;
        case R.id.aboutUs:

            whichOption = new Intent(oduActivity.this,aboutUs.class);
            startActivity(whichOption);
            break;
        case R.id.legal:

            whichOption = new Intent(oduActivity.this,legal.class);
            startActivity(whichOption);
            break;

        }
        return false;
    }






     //   display = (TextView) findViewById(R.id.tvDisplay);
  //  }
 }
4

2 回答 2

1

我在这里看到空指针。您应该设置断点并尝试使用另一个模拟器...

于 2012-05-22T00:32:46.013 回答
1

为什么不试试这个,

Intent openStartingPoint = new Intent(Splash.this,ODUACTIVITY.class); //creating an intent which is basically a reference to the Android Manifest
                        startActivity(openStartingPoint);  
于 2012-05-22T05:06:43.150 回答