简体   繁体   English

Android - 错误打开跟踪文件:没有这样的文件或目录

[英]Android - error opening trace file: No such file or directory

I'm getting a weird list of errors, some seemingly disconnected but I have no way to tell as I can't even get my App to load to debug. 我得到一个奇怪的错误列表,有些看似断开连接,但我无法分辨,因为我甚至无法将我的应用程序加载到调试。 It's a very simple app, 3 radio buttons in a radio group and each one will trigger a different song to play. 这是一个非常简单的应用程序,一个广播组中的3个单选按钮,每个按钮都会触发一首不同的歌曲。

I will start by posting my Manifest, my activity file, and layout then post the error log. 我将首先发布我的Manifest,我的活动文件和布局,然后发布错误日志。

Manifest: 表现:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.cis298.lab2"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity 
            android:label = "@string/app_name"
            android:name = ".LayoutActivity">
            <intent-filter >
                <action android:name = "android.intent.action.MAIN" />

                <category android:name = "android.intent.category.LAUNCHER" />

            </intent-filter>
            ></activity>
    </application>

</manifest>

LayoutActivity: LayoutActivity:

package com.cis298.lab2;

import java.io.IOException;

import com.cis298.lab2.R;

import android.app.Activity;
import android.os.Bundle;
import android.media.MediaPlayer;
import android.widget.RadioGroup;

public class LayoutActivity extends Activity {

    int song;
    MediaPlayer mediaplayer = MediaPlayer.create(this, song);

    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        try {
            mediaplayer.prepare();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        RadioGroup radgrp = (RadioGroup) findViewById(R.id.radiogroup);
        radgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId){
                case R.id.dance:
                    song = R.raw.redalert;
                    mediaplayer.start();
                    break;
                case R.id.rap:
                    song = R.raw.cannedheat;
                    break;
                case R.id.rock:
                    song = R.raw.movmou8105;
                    break;}
            }
        });
    }
}

layout: 布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

   <RadioGroup
       android:id="@+id/radiogroup"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_alignParentLeft="true"
       android:layout_alignParentTop="true"
       android:orientation="vertical" >

       <RadioButton
           android:id="@+id/rock"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Play Rock" />

       <RadioButton
           android:id="@+id/rap"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Play Rap" 
           android:checked="true"/>

       <RadioButton
           android:id="@+id/dance"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="Play Dance"
           android:textAlignment="center" />

   </RadioGroup>

</RelativeLayout>

Log: 日志:

02-21 20:34:05.044: D/AndroidRuntime(322): Shutting down VM 02-21 20:34:05.044: W/dalvikvm(322): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 02-21 20:34:05.094: E/AndroidRuntime(322): FATAL EXCEPTION: main 02-21 20:34:05.094: E/AndroidRuntime(322): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.cis298.lab2/com.cis298.lab2.LayoutActivity}: java.lang.NullPointerException 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.os.Handler.dispatchMessage(Handler.java:99) 02-21 20 02-21 20:34:05.044:D / AndroidRuntime(322):关闭VM 02-21 20:34:05.044:W / dalvikvm(322):threadid = 1:线程退出未捕获异常(组= 0x4001d800)02 -21 20:34:05.094:E / AndroidRuntime(322):FATAL EXCEPTION:main 02-21 20:34:05.094:E / AndroidRuntime(322):java.lang.RuntimeException:无法实例化活动ComponentInfo {com.cis298 .lab2 / com.cis298.lab2.LayoutActivity}:java.lang.NullPointerException 02-21 20:34:05.094:E / AndroidRuntime(322):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)02- 21 20:34:05.094:E / AndroidRuntime(322):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)02-21 20:34:05.094:E / AndroidRuntime(322):在android.app。 ActivityThread.access $ 2300(ActivityThread.java:125)02-21 20:34:05.094:E / AndroidRuntime(322):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)02-21 20:34 :05.094:E / AndroidRuntime(322):在android.os.Handler.dispatchMessage(Handler.java:99)02-21 20 :34:05.094: E/AndroidRuntime(322): at android.os.Looper.loop(Looper.java:123) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.ActivityThread.main(ActivityThread.java:4627) 02-21 20:34:05.094: E/AndroidRuntime(322): at java.lang.reflect.Method.invokeNative(Native Method) 02-21 20:34:05.094: E/AndroidRuntime(322): at java.lang.reflect.Method.invoke(Method.java:521) 02-21 20:34:05.094: E/AndroidRuntime(322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 02-21 20:34:05.094: E/AndroidRuntime(322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 02-21 20:34:05.094: E/AndroidRuntime(322): at dalvik.system.NativeStart.main(Native Method) 02-21 20:34:05.094: E/AndroidRuntime(322): Caused by: java.lang.NullPointerException 02-21 20:34:05.094: E/AndroidRuntime(322): at android.content.ContextWrapper.getResources(ContextWrapper.java:80) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.media.MediaPlayer.create(MediaPlayer.java:641) :34:05.094:E / AndroidRuntime(322):在android.os.Looper.loop(Looper.java:123)02-21 20:34:05.094:E / AndroidRuntime(322):在android.app.ActivityThread。 main(ActivityThread.java:4627)02-21 20:34:05.094:E / AndroidRuntime(322):at java.lang.reflect.Method.invokeNative(Native Method)02-21 20:34:05.094:E / AndroidRuntime (322):at java.lang.reflect.Method.invoke(Method.java:521)02-21 20:34:05.094:E / AndroidRuntime(322):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。 run(ZygoteInit.java:868)02-21 20:34:05.094:E / AndroidRuntime(322):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)02-21 20:34: 05.094:E / AndroidRuntime(322):at dalvik.system.NativeStart.main(Native Method)02-21 20:34:05.094:E / AndroidRuntime(322):引起:java.lang.NullPointerException 02-21 20: 34:05.094:E / AndroidRuntime(322):在android.content.ContextWrapper.getResources(ContextWrapper.java:80)02-21 20:34:05.094:E / AndroidRuntime(322):在android.media.MediaPlayer.create (MediaPlayer.java:641) 02-21 20:34:05.094: E/AndroidRuntime(322): at com.cis298.lab2.LayoutActivity.(LayoutActivity.java:15) 02-21 20:34:05.094: E/AndroidRuntime(322): at java.lang.Class.newInstanceImpl(Native Method) 02-21 20:34:05.094: E/AndroidRuntime(322): at java.lang.Class.newInstance(Class.java:1429) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 02-21 20:34:05.094: E/AndroidRuntime(322): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 02-21 20:34:05.094: E/AndroidRuntime(322): ... 11 more 02-21 20:34:05.094:E / AndroidRuntime(322):at com.cis298.lab2.LayoutActivity。(LayoutActivity.java:15)02-21 20:34:05.094:E / AndroidRuntime(322):at java .lang.Class.newInstanceImpl(Native Method)02-21 20:34:05.094:E / AndroidRuntime(322):at java.lang.Class.newInstance(Class.java:1429)02-21 20:34:05.094: E / AndroidRuntime(322):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)02-21 20:34:05.094:E / AndroidRuntime(322):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java) :2577)02-21 20:34:05.094:E / AndroidRuntime(322):... 11更多

Any help would be greatly appreciated. 任何帮助将不胜感激。

Try moving mediaplayer = MediaPlayer.create(this, song); 尝试移动mediaplayer = MediaPlayer.create(this, song); to inside onCreate() . onCreate()里面。

Since the Activity isn't fully initialized until onCreate() , this may be the cause of the NPE. 由于活动在onCreate()之前没有完全初始化,这可能是NPE的原因。

However , the next problem is that you create the MediaPlayer with song being initially 0 (int has a default value of 0 when it is an instance variable). 但是 ,下一个问题是您创建的MediaPlayer的歌曲最初为0 (当它是实例变量时,int的默认值为0 )。 So if moving MediaPlayer.create solves this NPE, the next error will be something about not being able to find the resource. 因此,如果移动MediaPlayer.create解决 NPE,则下一个错误将是无法找到资源。 Therefore, call MediaPlayer.create once song holds on to something useful . 因此,一旦song保持有用的东西,就调用MediaPlayer.create

Maybe something like this will work. 也许这样的事情会起作用。

public class LayoutActivity extends Activity {

  int song;
  MediaPlayer mediaPlayer;

  public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout);

    RadioGroup radgrp = (RadioGroup) findViewById(R.id.radiogroup);
    radgrp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

      @Override
      public void onCheckedChanged(RadioGroup group, int checkedId) {
        switch (checkedId){
          case R.id.dance:
            song = R.raw.redalert;
            break;
          case R.id.rap:
            song = R.raw.cannedheat;
            break;
          case R.id.rock:
            song = R.raw.movmou8105;
            break;
        }


        mediaplayer = MediaPlayer.create(LayoutActivity.this, song);
        try {
          mediaplayer.prepare();
          mediaplayer.start();
        } catch (IllegalStateException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
    });
  }
}

And if song isn't used anywhere else, you can keep it in the scope of onCheckedChanged() . 如果歌曲没有在其他任何地方使用,你可以将它保持在onCheckedChanged()的范围内。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android E / Trace(627):打开跟踪文件时出错:没有这样的文件或目录(2) - Android E/Trace(627): error opening trace file: No such file or directory (2) Android运行时错误:打开跟踪文件时出错:没有这样的文件或目录(2) - Android runtime error: error opening trace file: No such file or directory (2) Android上的JDom:打开跟踪文件时出错:没有这样的文件或目录 - JDom on Android: error opening trace file: No such file or directory 打开跟踪文件时出错:没有这样的文件或目录(2),解决方案? - error opening trace file: No such file or directory (2), Solution? 打开跟踪文件时出错。 没有这样的文件或目录[2] - Error opening trace file. No such file or directory [2] HttpURLConnection打开跟踪文件时出错:没有这样的文件或目录 - HttpURLConnection Error opening trace file: no such file or directory E / Trace:错误打开跟踪文件:没有这样的文件或目录(2) - E/Trace﹕ error opening trace file: No such file or directory (2) 错误打开跟踪文件android权限被拒绝 - Error opening trace file android permission denied LogCat错误打开跟踪文件时出错:没有这样的文件或目录 - LogCat error Error opening trace file: no such file or directory 是什么原因导致打开跟踪文件错误:没有这样的文件或目录? - What cause the error opening trace file: No such file or directory?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM