小编Val*_*lik的帖子

Android Studio:"更新并重新启动"不起作用

每天早上Android Studio开始后,我都会成为一个对话框,其中包含有关新版Android Studio(Beta)的信息.如果我点击"更新并重新启动",将下载补丁(我看到进度条和不断增长的文件大小).之后Android Studio将重新启动,但......未安装更新!如果我点击"帮助/检查更新",我可以重复它.

有谁知道如何解决这个问题?

PS当然可以下载完整版本并手动安装,但使用自动更新会非常方便.

android-studio

26
推荐指数
2
解决办法
8281
查看次数

OutputStream.write()成功但数据未传递

在写入套接字时,我有一种非常奇怪的行为.在我的移动客户端中,我使用的套接字初始化如下:

private void initSocket()
{
    socket = new Socket();
    socket.connect(new InetSocketAddress(host, port));

    os = new DataOutputStream(socket.getOutputStream());
    is = new DataInputStream(socket.getInputStream());
}
Run Code Online (Sandbox Code Playgroud)

然后定期(每60秒)我读取一些数据到这个套接字(这里的代码有点简化):

if(!isSocketInitialized())
{
    initSocket();
}

byte[] msg = getMessage();

os.write(msg);
os.flush();

int bytesAvailable = is.available( );
if(bytesAvailable>0)
{
    byte[] inputBuffer = new byte[bytesAvailable];

    int numRead = is.read(inputBuffer, 0, bytesAvailable);
    processServerReply(inputBuffer, numRead);
}
Run Code Online (Sandbox Code Playgroud)

它有效.但是......有时(很少,每天可能是1或2次)我的服务器不接收数据.我的客户端日志如下:

Written A
Written B
Written C
Written D
Written E
Run Code Online (Sandbox Code Playgroud)

等等.但在服务器端看起来像:

Received A
Received E
Run Code Online (Sandbox Code Playgroud)

没有收到B,C,D数据记录,尽管事实上在客户端看起来所有数据都是在没有任何例外的情况下发送的!

这样的间隙可能很小(2-3分钟),这不是很糟糕,但有时它们可​​能非常大(1-2小时= 60-120个周期),这对我的客户来说确实是一个问题.

我真的不知道什么是错的.数据似乎是由客户端发送的,但它永远不会到达服务器端.我也用代理检查了它.

我只有日志而且我无法重现这个问题(但是我的客户每天都会发生一次这种情况)并且在日志中有时我看到连接因异常而被破坏"发送失败:ECONNRESET(连接由同行重置) )".之后,程序关闭套接字,重新初始化它:

// close
is.close();
os.close();
socket.close(); …
Run Code Online (Sandbox Code Playgroud)

java android network-programming java-io

9
推荐指数
1
解决办法
5744
查看次数

org.keycloak.common.VerificationException:无效的令牌发行者

我正在开发一个 Android 应用程序,它使用我的 REST 后端。后端在 JBoss 实例上运行,该实例通过 Keycloak 进行保护。自从我将 Keycloak 从 1.0.7 更新到 2.1.5 以来,我遇到了以下问题。如果我尝试调用后端的 REST API,JBoss 会写入以下日志:

        [org.keycloak.adapters.BearerTokenRequestAuthenticator] (default task-39) 
Failed to verify token: org.keycloak.common.VerificationException: Invalid token issuer.
            Expected 'http://localhost:8180/auth/realms/myrealm', but was 'http://192.168.178.24:8180/auth/realms/myrealm'
            at org.keycloak.TokenVerifier.verify(TokenVerifier.java:156)
            at org.keycloak.RSATokenVerifier.verify(RSATokenVerifier.java:89)
Run Code Online (Sandbox Code Playgroud)

192.168.178.24 是正确的 IP 地址。好像是配置问题,但是这个地址在哪里可以配置呢?

有没有人知道如何解决这个问题?

keycloak

7
推荐指数
1
解决办法
7697
查看次数

WebRTC:如何为视频编码器启用硬件加速

我正在尝试在 WebRTC 的帮助下将屏幕截图的视频发送到 mediasoup。WebRTC 库中有一个类:ScreenCapturerAndroid。它有效,但在某些设备上的性能非常糟糕。特别是如果我使用 HD 或更好的显示分辨率。

在计算器上我找到了一个建议,以呼叫setEnableVideoHwAcceleration(真)setVideoHwAccelerationOptions() 。但在较新版本的 WebRTC 库中,这些方法已被删除

这是我的代码:

  // ...
PeerConnectionFactory.Builder builder = PeerConnectionFactory.builder();
builder.setOptions(null);

EglBase.Context eglContext = EglUtils.getRootEglBaseContext();

VideoEncoderFactory encoderFactory =
    new DefaultVideoEncoderFactory(
        eglContext, true /* enableIntelVp8Encoder */, true);


PeerConnectionFactory.InitializationOptions initializationOptions =
PeerConnectionFactory.InitializationOptions.builder(context)
//        .setEnableVideoHwAcceleration(true)  // <-- does not work any more 
        .createInitializationOptions();
PeerConnectionFactory.initialize(initializationOptions);

mPeerConnectionFactory =
    builder
        .setVideoEncoderFactory(encoderFactory)
        .createPeerConnectionFactory();
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何使用较新的 WebRTC 库版本为屏幕捕获启用视频硬件加速。

webrtc webrtc-android mediasoup

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