小编Nid*_*esh的帖子

Retrofit响应中的Android空指针异常

在我的应用程序中,我一直在为我的网络服务调用使用改造。它工作正常,但是当应用程序进入后台时它崩溃并得到错误日志,

  java.lang.NullPointerException: Attempt to invoke interface method 'void    retrofit.Callback.failure(retrofit.RetrofitError)' on a null object   reference
    at retrofit.CallbackRunnable$2.run(CallbackRunnable.java:53)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:5942)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)


Can anyone help me to overcome this issue..??
Run Code Online (Sandbox Code Playgroud)

这是我的改造客户端类,

public class RetrofitClient {
private static RetrofitCommonService RETROFIT_CLIENT;
public RetrofitClient() {}
public static RetrofitCommonService getInstance() {
    //if REST_CLIENT is null then set-up again.
    if (RETROFIT_CLIENT == null) {
        setupRestClient();
    }
    return RETROFIT_CLIENT;
}

private static void setupRestClient() { …
Run Code Online (Sandbox Code Playgroud)

api android callback nullpointerexception retrofit

5
推荐指数
1
解决办法
4417
查看次数

在 android smack 4.1 中接收到重复的消息

我一直在尝试使用 smack 4.1 创建一个 android 聊天应用程序。消息发送和接收工作正常,但问题是在 mXmppConnection.addAsyncStanzaListener 中多次收到相同的消息。我不知道我是否错过了向连接添加某些内容。

这是我的连接类:

XMPPTCPConnectionConfiguration.Builder configBuilder = new XMPPTCPConnectionConfiguration.builder();

 configBuilder.setUsernameAndPassword(mUser, "password@123");
configBuilder.setPort(5555);
configBuilder.setServiceName("tvm.myname.com");
configBuilder.setDebuggerEnabled(true);                    configBuilder.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
try 
{
XMPPTCPConnection mConnection = new XMPPTCPConnection(configBuilder.build());
mConnection.connect();
mConnection.login();
} 
catch (SmackException e) 
{
} 
Run Code Online (Sandbox Code Playgroud)

这是消息接收的代码:

mXmppConnection.addAsyncStanzaListener(new StanzaListener() {
 @Override
 public void processPacket(Stanza packet) throws SmackException.NotConnectedException {
 Message message = (Message)packet;  
  Log.i("XMPPClient", "****** message " + message);
  // code for handling message
}                  `enter code here`
},null);
Run Code Online (Sandbox Code Playgroud)

真正的问题是我多次收到消息......消息的值在日志中打印了几次。请帮我....

client android chat xmpp smack

4
推荐指数
1
解决办法
3731
查看次数

Mediaplayer setOnCompletionListener重复调用

在我的应用程序中,我在listview中显示我的音频文件,并且当listitem特定文件的点击必须在listbar单元格中使用seekbar播放时.但现在我想在播放结束时更新ui.我使用了onCompletionListener,但在重放开始时会重复调用.这是我的代码

private void startPlayBack(final MessagesAdapter.ViewHolder viewHolder){

        try {

            if(mMediaPlayer!=null){
                if(mMediaPlayer.isPlaying()) {
                    mMediaPlayer.stop();
                }
            }
            mMediaPlayer.reset();
            mMediaPlayer.setDataSource(viewHolder.mChatMessage.mMessages);
            mMediaPlayer.prepareAsync();

        } catch (IOException e) {
            Log.i("audioplay", "IOException *************",e);
        }catch (IllegalStateException e) {
            Log.i("audioplay", "IllegalStateException *************",e);
        }

        mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {

                viewHolder.mAudioPlayBtn.setVisibility(View.VISIBLE);
                viewHolder.mAudioPlayBtn.setImageDrawable(mContext.getResources().getDrawable(R.drawable.audio_close));
                mMediaPlayer.setLooping(false);
                mMediaPlayer.start();
            }
        });

        mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                Log.i("Completion Listener", "audio Completed");
            }
        });

        viewHolder.mAudioSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            } …
Run Code Online (Sandbox Code Playgroud)

android listener media-player android-seekbar

3
推荐指数
1
解决办法
3973
查看次数