Android应用程序“Source Not Found”java.lang.runtimeexception

时间:2014-10-08 19:42:44

标签: java android

我从在手机上运行我的应用程序切换到nexus 10平板电脑,现在它说“不幸的是应用程序已停止。”

平板电脑正在运行4.4.2,我的目标api在清单中设置为19。

当我在调试模式下运行时,我得到Source Not Found。我尝试点击编辑源查找路径并添加我的项目,但没有运气。

我看了整个互联网,并没有任何运气解决这个问题。任何建议都会有很大帮助。

“java.lang.RuntimeException:无法启动活动ComponentInfo {com.looper.video/com.looper.video.MainActivity}:java.lang.NullPointerException”

修改

MainActivity:

package com.looper.video;

public class MainActivity extends Activity {
    private VideoView video;
    private MediaController ctlr;
    final Uri firstVideoPath = Uri.parse("android.resource://com.looper.video/" + R.raw.wildlife);
    final Uri secondVideoPath = Uri.parse("android.resource://com.looper.video/" + R.raw.wildlife1);
    private String videosPath = Environment.getExternalStorageDirectory() + "/videos/";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        File folder = new File(videosPath);
        File[] customFiles = folder.listFiles();

        List<String> customFileNames = new ArrayList<String>();

        for(File file : customFiles) {
            customFileNames.add(file.getName());

        }

        ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
                 this, android.R.layout.simple_spinner_item, customFileNames);
        spinnerArrayAdapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item );

        Spinner spinner = (Spinner)findViewById(R.id.spinnerCustomFiles);
        spinner.setAdapter(spinnerArrayAdapter);


        video = (VideoView)findViewById(R.id.videoView1);
        ctlr = new MediaController(this);


        final Button firstVideoBtn = (Button) findViewById(R.id.firstVideoBtn);
        firstVideoBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                playFirstVideo();
            }
        });

        final Button secondVideoBtn = (Button) findViewById(R.id.secondVideoBtn);
        secondVideoBtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                playSecondVideo();

            }
        });

    }

    public void playFeatured(View v) {
        try {

        Spinner spinner = (Spinner)findViewById(R.id.spinnerCustomFiles);
        String strPath = videosPath + spinner.getSelectedItem().toString();
        Toast.makeText(this, strPath, Toast.LENGTH_LONG).show();

        //Uri path = Uri.parse(videosPath + spinner.getSelectedItem().toString());

        video.setVideoPath(strPath);
        ctlr.setMediaPlayer(video);
        video.setMediaController(ctlr);
        video.requestFocus();
        video.start();

        video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer vmp) {
                playSecondVideo();        
            }
        });

        } catch(Exception e) {
            System.out.println(e.getMessage());


        }

    }

    public void playFirstVideo() {
        video.setVideoURI(firstVideoPath);
        ctlr.setMediaPlayer(video);
        video.setMediaController(ctlr);
        video.requestFocus();
        video.start();

        video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer vmp) {
                playSecondVideo();        
            }
        });
    }

    public void playSecondVideo() {

        SharedPreferences sp = getSharedPreferences("schedule", Context.MODE_PRIVATE);
        //SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
        String startTime = sp.getString("startTime", "");
        String endTime = sp.getString("endTime", "");
        /*
        //SimpleDateFormat parser = new SimpleDateFormat("HH:mm");
        //Date dateStartTime = parser.parse(startTime);
        //Date dateEndTime = parser.parse(endTime);
        Date now = new Date();

        try {
            if (userDate.after(ten) && userDate.before(eighteen)) {

            } 
        } catch (ParseException e) {
            // Invalid date was entered
        }


        System.out.println("Now:"+now);
        System.out.println("Start"+startTime);
        System.out.println("End:"+endTime);
        //if(now.before(dateEndTime) && now.after(dateStartTime)){

            //disableAll();
        //} else {
         * 
         */
            video.setVideoURI(secondVideoPath);
            ctlr.setMediaPlayer(video);
            video.setMediaController(ctlr);
            video.requestFocus();
            video.start();

            video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer vmp) {
                        playSecondVideo();        
                    }

            });
        //}

    }

    public void admin(View view) 
    {
        //MySQLiteHelper db = new MySQLiteHelper(this);

        //final String password = db.getUser(7).getPassword();
        //db.close();



        final AlertDialog.Builder alert = new AlertDialog.Builder(this);
        final EditText pass = new EditText(this);
        alert.setView(pass);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                String value = pass.getText().toString().trim();

                SharedPreferences sp1 = getSharedPreferences("Login", 0);
                //String username = sp1.getString("UserName", "");       
                String password = sp1.getString("Password", "");

                if(value.equals(password)) {
                    Intent intent = new Intent(getBaseContext(),Admin.class);
                    startActivity(intent);
                }
                //Toast.makeText(getApplicationContext(), password + " " + value, Toast.LENGTH_SHORT).show();
            }
        });

        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                dialog.cancel();
            }
        });
        alert.show();   
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.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();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    public void disableAll(){
        Button firstVideoBtn = (Button)findViewById(R.id.firstVideoBtn);
        firstVideoBtn.setEnabled(false);
        Button secondVideoBtn = (Button)findViewById(R.id.secondVideoBtn);
        secondVideoBtn.setEnabled(false);
        Spinner spinner = (Spinner)findViewById(R.id.spinnerCustomFiles);
        spinner.setEnabled(false);
        Button btnPlay = (Button)findViewById(R.id.btnPlayFeatured);
        btnPlay.setEnabled(false);
        VideoView videoView = (VideoView)findViewById(R.id.videoView1);
        videoView.setEnabled(false);
    }
  }

完整logcat:

    D/dalvikvm(2817): GC_FOR_ALLOC freed 58K, 4% free 3441K/3568K, paused 20ms, total 20ms
    10-08 15:23:17.965: D/dalvikvm(2817): GC_FOR_ALLOC freed 2K, 4% free 3505K/3632K, paused 7ms, total 7ms
    10-08 15:23:17.975: I/dalvikvm-heap(2817): Grow heap (frag case) to 8.739MB for 5515216-byte allocation
    10-08 15:23:17.985: D/dalvikvm(2817): GC_FOR_ALLOC freed <1K, 2% free 8891K/9020K, paused 7ms, total 7ms
    10-08 15:23:18.055: D/AndroidRuntime(2817): Shutting down VM
    10-08 15:23:18.055: W/dalvikvm(2817): threadid=1: thread exiting with uncaught exception (group=0x4155eba8)
    10-08 15:23:18.055: E/AndroidRuntime(2817): FATAL EXCEPTION: main
    10-08 15:23:18.055: E/AndroidRuntime(2817): Process: com.looper.video, PID: 2817
    10-08 15:23:18.055: E/AndroidRuntime(2817): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.looper.video/com.looper.video.MainActivity}: java.lang.NullPointerException
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.os.Handler.dispatchMessage(Handler.java:102)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.os.Looper.loop(Looper.java:136)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.ActivityThread.main(ActivityThread.java:5017)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at java.lang.reflect.Method.invokeNative(Native Method)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at java.lang.reflect.Method.invoke(Method.java:515)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at dalvik.system.NativeStart.main(Native Method)
    10-08 15:23:18.055: E/AndroidRuntime(2817): Caused by: java.lang.NullPointerException
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at com.looper.video.MainActivity.onCreate(MainActivity.java:52)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.Activity.performCreate(Activity.java:5231)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
    10-08 15:23:18.055: E/AndroidRuntime(2817):     ... 11 more

0 个答案:

没有答案