导致错误打开跟踪文件的原因:没有这样的文件或目录?

时间:2015-03-18 13:41:36

标签: java android xml

当我在我的移动设备中运行我的应用程序时,我在logcat下得到了这个:

错误打开跟踪文件:没有这样的文件或目录(2)。任何人都知道原因是什么?我试图重新构建项目并在下面清理它:

项目>干净......

但我仍然得到同样的错误。该应用程序说不幸的是你无法在这个设备上录制,如果手机不支持录制,这是我在String.xml文件下创建的消息。

任何有帮助的人都请这样做。我很乐意得到一个。

这是代码: 公共类MainActivity扩展了Activity {

public static final String FILE_DIRECTORY = "iRecorded_Calls";
public ListView listView;
public ScrollView mScrollView;
public TextView mTextView;
public static final String LISTEN_ENABLED = "ListenEnabled";
private static final int CATEGORY_DETAIL = 1;
private static final int NO_MEMORY_CARD = 2;
private static final int TERMS = 3;

public RadioButton radEnable;
public RadioButton radDisable;

public static final int MEDIA_MOUNTED = 0;
public static final int MEDIA_MOUNTED_READ_ONLY = 1;
public static final int NO_MEDIA = 2;

private static Resources res;
private Context context;

@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startActivity(new Intent(this, HomeActivity.class));

    res = getResources();

    listView = (ListView) findViewById(R.id.mylist);        
    mScrollView = (ScrollView) findViewById(R.id.ScrollView02);
    mTextView = (TextView) findViewById(R.id.txtNoRecords);

    SharedPreferences settings = this.getSharedPreferences(LISTEN_ENABLED,
            0);
    boolean silent = settings.getBoolean("silentMode", false);

    if (!silent)
        showDialog(CATEGORY_DETAIL);

    context = this.getBaseContext();

}
//Explorer the file directory 
@SuppressWarnings("deprecation")
@Override
protected void onResume() {
    if (updateExternalStorageState() == MEDIA_MOUNTED) {
        String filepath = Environment.getExternalStorageDirectory()
                .getPath();
        final File file = new File(filepath, FILE_DIRECTORY);

        if (!file.exists()) {
            file.mkdirs();
        }

        final List<Model> listDir = ListDir2(file);

        filepath = getFilesDir().getAbsolutePath();
        final File file2 = new File(filepath, FILE_DIRECTORY);

        if (!file2.exists()) {
            file2.mkdirs();
        }

        final List<Model> listDir2 = ListDir2(file2);

        listDir.addAll(listDir2);

        if (listDir.isEmpty()) {
            mScrollView.setVisibility(TextView.VISIBLE);
            listView.setVisibility(ScrollView.GONE);
        } else {
            mScrollView.setVisibility(TextView.GONE);
            listView.setVisibility(ScrollView.VISIBLE);
        }

        final CallsAdapter adapter = new CallsAdapter(this, listDir);

        listView.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                adapter.showPromotionPieceDialog(listDir.get(position)
                        .getCallName(), position);
            }
        });

2 个答案:

答案 0 :(得分:0)

我设法找出了我的代码上的问题并修复了它,现在我可以记录传入和传出的呼叫。问题出在记录器部分的 RecordSercive

> //________Test with the Default outputFormat and default
> Encoder________
> 
>           /*  recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);
>               recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
>               recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);*/
>               
>               //_______End for the Test with the Default outputFortmat and default Encoder________

这就是我收到消息的地方很遗憾你不能在这台设备上录制

所以我将代码更改为:

> recorder = new MediaRecorder();               
>               recorder.setAudioSource(MediaRecorder.AudioSource.VOICE_DOWNLINK + MediaRecorder.AudioSource.VOICE_UPLINK);//test using the addition sign
> for both DOWNLINK + UPLINK
>               recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
>               recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);                
>               myFileName = getFilename();
>               recorder.setOutputFile(myFileName);

哪种方式对我来说很好,但声音质量是一个问题,我只需要增加音量

> volume = (AudioManager) getSystemService(Context.AUDIO_SERVICE);

但在我调试我的应用程序时在Eclipse上的LogCat下,我仍然得到错误打开跟踪文件:没有这样的文件或目录(2)。其中我认为这可能是由于我目前正在调查的其他原因(Chris Stratton)提到的。

答案 1 :(得分:-1)

在最新版本的Android中,他们明显限制使用主流网络。 这已经为UI做了不打破。 可能你在清单中提出了API版本。

相关问题