扩展文件下载功能不起作用

时间:2013-07-17 17:10:10

标签: java android

我正在尝试在Android中测试我的应用程序的扩展文件功能。但是,下载不起作用。我使用SampleDownloaderActivity.java代码来显示下载进度。 但是,屏幕上没有可见的下载进度。我已在http://developer.android.com/google/play/expansion-files.html

上提供的文档中包含了所需的代码

我必须测试app以进行扩展文件下载。

当应用程序启动时,可以看到从SampleDownloaderActivity.java创建的UI,点击“暂停下载”按钮会使应用程序崩溃,从而导致空指针异常。

以下是应用崩溃的代码

 mPauseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mStatePaused) 
                {
                    mRemoteService.requestContinueDownload();
                }
                else 
                {
                    mRemoteService.requestPauseDownload();
                }
                setButtonPausedState(!mStatePaused);
            }
        });
     }

以下是我得到的崩溃日志: -

07-17 22:26:21.998: E/AndroidRuntime(19293): java.lang.NullPointerException
07-17 22:26:21.998: E/AndroidRuntime(19293):    at com.lht.egoscue.SampleDownloaderActivity$2.onClick(SampleDownloaderActivity.java:360)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at android.view.View.performClick(View.java:4084)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at android.view.View$PerformClick.run(View.java:16966)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at android.os.Handler.handleCallback(Handler.java:615)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at android.os.Handler.dispatchMessage(Handler.java:92)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at android.os.Looper.loop(Looper.java:137)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at android.app.ActivityThread.main(ActivityThread.java:4745)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at java.lang.reflect.Method.invokeNative(Native Method)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at java.lang.reflect.Method.invoke(Method.java:511)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-17 22:26:21.998: E/AndroidRuntime(19293):    at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:0)

mRemoteService是否为空?尝试用以下代码替换您的代码:

mPauseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (mRemoteService != NULL) {
                    if (mStatePaused) 
                    {
                        mRemoteService.requestContinueDownload();
                    }
                    else 
                    {
                        mRemoteService.requestPauseDownload();
                    }
                    setButtonPausedState(!mStatePaused);
                }
                else { Log.wtf("SampleDownloaderActivity", "mRemoteService is NULL!!"); }
            }
        });
     }

Pt 2:

您知道onServiceConnected是否真的被调用?引用你的文档:

  

onServiceConnected(Messenger m):

     
    

在您的活动中实例化IStub后,您将收到对此方法的调用,该方法会传递一个     与您的实例连接的Messenger对象     DownloaderService。向服务发送请求,例如暂停     并恢复下载,你必须打电话     DownloaderServiceMarshaller.CreateProxy()接收     IDownloaderService接口连接到服务。

  

那么,你有没有:
1.在你的班级中实现了IDownloaderClient接口? 2.您是否在活动中实例化了IStub