首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SoundCloud致命异常

SoundCloud致命异常
EN

Stack Overflow用户
提问于 2015-08-02 01:17:40
回答 1查看 83关注 0票数 0

我有一个mp3下载应用程序的源代码,几个月前我上次使用它时,它运行得很好。现在,当我尝试它时,当我点击一首歌曲下载时,它会从搜索结果中给出一个错误。下面是错误:

代码语言:javascript
复制
08-01 13:06:09.227: E/AndroidRuntime(2075): FATAL EXCEPTION: main
08-01 13:06:09.227: E/AndroidRuntime(2075): Process: com.soundload, PID: 2075
08-01 13:06:09.227: E/AndroidRuntime(2075): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Boolean de.voidplus.soundcloud.Track.isStreamable()' on a null object reference
08-01 13:06:09.227: E/AndroidRuntime(2075):     at com.baixavideos.Downloader.onPostExecute(Downloader.java:41)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at com.baixavideos.Downloader.onPostExecute(Downloader.java:1)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at android.os.AsyncTask.finish(AsyncTask.java:636)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at android.os.AsyncTask.access$500(AsyncTask.java:177)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:653)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at android.os.Handler.dispatchMessage(Handler.java:102)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at android.os.Looper.loop(Looper.java:135)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at android.app.ActivityThread.main(ActivityThread.java:5254)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at java.lang.reflect.Method.invoke(Native Method)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at java.lang.reflect.Method.invoke(Method.java:372)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
08-01 13:06:09.227: E/AndroidRuntime(2075):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
08-01 13:06:11.353: W/System.err(2174): java.io.IOException: open failed: EACCES (Permission denied)
08-01 13:06:11.353: W/System.err(2174):     at java.io.File.createNewFile(File.java:941)
08-01 13:06:11.354: W/System.err(2174):     at de.voidplus.soundcloud.SoundCloud.<init>(Unknown Source)
08-01 13:06:11.354: W/System.err(2174):     at com.baixavideos.ui.MainActivity.<clinit>(MainActivity.java:63)
08-01 13:06:11.354: W/System.err(2174):     at java.lang.reflect.Constructor.newInstance(Native Method)
08-01 13:06:11.354: W/System.err(2174):     at java.lang.Class.newInstance(Class.java:1606)
08-01 13:06:11.354: W/System.err(2174):     at android.app.Instrumentation.newActivity(Instrumentation.java:1066)

Downloader.java:

代码语言:javascript
复制
package com.baixavideos;

import com.baixavideos.ui.SongDetails;

import de.voidplus.soundcloud.SoundCloud;
import de.voidplus.soundcloud.Track;

import android.os.AsyncTask;
import android.util.Log;

public class Downloader extends AsyncTask<String, Void, Track>{

    private int id;
    private SoundCloud soundcloud;
    private SongDetails ui;

    public Downloader(){
        soundcloud = new SoundCloud("cd07b57592f6d914f437f8ab2856363d", "841953bd718a3ceb427b3e3be170a014"); 
    }

    public int getId() {
        return id;
    }

    public Downloader setId(int id) {
        this.id = id;

        return this;
    }

    @Override
    protected Track doInBackground(String... arg0) {        
        Track track = soundcloud.getTrack(getId());
        return track;
    }

    @Override
    protected void onPostExecute(Track track) {
        super.onPostExecute(track);

        if(track.isStreamable()){
            getUi().onSongLoaded(track);
        } else {
            getUi().onStreamingError();
        }
    }

    public SongDetails getUi() {
        return ui;
    }

    public Downloader setUi(SongDetails ui) {
        this.ui = ui;

        return this;
    }   

}

有人知道这是怎么回事吗?

EN

回答 1

Stack Overflow用户

发布于 2015-08-12 05:05:18

这听起来像是你的应用程序临时目录的权限问题。您的应用程序只能将文件放入其自己的应用程序目录中,并且出于某种原因,权限被拒绝。这就是为什么它最终会在isStreamable()为空的情况下失败。

您是否也尝试过添加权限:

代码语言:javascript
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE></uses-permission>

另外,onPostExecute()您应该检查track!=null,然后捕获错误并记录它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31764202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档