2

我正在尝试测试我的应用程序在 android 中的扩展文件功能。但是,下载不起作用。我使用 SampleDownloaderActivity.java 代码来显示下载进度。但是,屏幕上看不到下载进度。我已经从http://developer.android.com/google/play/expansion-files.html上给出的文档中包含了所需的代码

我必须测试应用程序以下载扩展文件。

当应用程序启动时,从 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)
4

1 回答 1

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!!"); }
            }
        });
     }

第 2 部分:

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

onServiceConnected(信使 m):

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

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

于 2013-07-17T17:15:27.233 回答