小编SJo*_*shi的帖子

Google Play Services 7.5.0 AnalyticsService NPE onStartCommand

在他们的应用中加载Google Play 7.5.0时有没有人遇到此崩溃?我现在每天看到大约30次崩溃,没有任何重现的方法.没有特别的Android风味(4.4,5,5.1)或设备(三星,HTC等)正在向我伸出.

java.lang.RuntimeException: Unable to start service com.google.android.gms.analytics.AnalyticsService@1153b3b0 with null:     java.lang.NullPointerException
   at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2721)
   at android.app.ActivityThread.access$1900(ActivityThread.java:141)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:5116)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:525)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
   at dalvik.system.NativeStart.main(NativeStart.java)
Caused by: java.lang.NullPointerException
   at com.google.android.gms.analytics.AnalyticsService.onStartCommand()
   at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2704)
   at android.app.ActivityThread.access$1900(ActivityThread.java:141)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
   at android.os.Handler.dispatchMessage(Handler.java:99)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:5116)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:525)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
   at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

此问题也已在Analytics错误跟踪器上发布,但我预计不会在那里看到任何移动:https://code.google.com/p/analytics-issues/issues/detail?id = 667

这是我的Gradle文件中的内容:

compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)

在我的AndroidManifest中(我认为这是Google文档的逐字记录):

    <receiver
        android:name="com.google.android.gms.analytics.AnalyticsReceiver"
        android:enabled="true" >
        <intent-filter>
            <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
        </intent-filter> …
Run Code Online (Sandbox Code Playgroud)

crash android google-analytics google-api google-play

10
推荐指数
1
解决办法
660
查看次数

适用于Android(3.0+)的VLC的规范低延迟设置

我最近开始在Android应用程序中使用libVLC,目的是替换我们花很多钱购买的商业SDK,但看不到希望的结果。该应用程序要求尽可能接近实时地查看RTSP流。理想情况下为500毫秒或更长时间(取决于平板电脑),而延迟不会随时间漂移。

退出用于libVLC的商业SDK的过程几乎是无缝的,并且可以立即进行,但延迟只有几秒钟(无需更改任何默认设置)。它可以非常快速地连接到RTSP流,并且不会断开连接。

我花了几天的时间来调整各种设置,以尽可能减少延迟。在某些情况下,我会得到300ms的延迟,最终流会下降到几秒钟的延迟,然后流会丢失并重新启动(然后延迟舞会再次开始)。在其他情况下(我猜我将网络缓存设置得太低时),我会得到充满错误的日志,并且从不获取图片。

我当前的设置是:

val media = Media(libVLC, Uri.parse(streamUrl))
media.setHWDecoderEnabled(true, false)
media.addOption(":network-caching=300")
media.addOption(":clock-jitter=0")
media.addOption(":clock-synchro=0")
Run Code Online (Sandbox Code Playgroud)

如果我将其设置network-caching为小于200的任何值,我将永远看不到图像(我读到某处的图像可能是因为平板电脑的解码器延迟时间高于200毫秒)。

无论如何,我发现十年来有数十种可能的答案,有些是相似的,有些是冲突的,有些使用了已弃用的标志。一些值得注意的:

2019:https : //forum.videolan.org/viewtopic.php? t =149511

m.AddOption(":network-caching=150");
m.AddOption(":clock-jitter=0");
m.AddOption(":clock-syncro=0");
Run Code Online (Sandbox Code Playgroud)

2018:Android LibVLC选项不起作用

options.add("--network-caching=50");
options.add("--clock-jitter=0");
options.add("--clock-synchro=0");
Run Code Online (Sandbox Code Playgroud)

2017:减少在Android上使用libvlc播放rtp流时的延迟

LibVLC libVlc = new LibVLC(context, arrayListOf(
    "--file-caching=150", 
    "--network-caching=150",
    "--clock-jitter=0",
    "--live-caching=150", 
    "--clock-synchro=0",
    "-vvv", 
    "--drop-late-frames", 
    "--skip-frames"
)); 

...OR...

media.setHWDecoderEnabled(true, false);
media.addOption(":network-caching=150");
media.addOption(":clock-jitter=0");
media.addOption(":clock-synchro=0");
Run Code Online (Sandbox Code Playgroud)

2015年:https//forum.videolan.org/viewtopic.php?f = 35&t = 124932&p = 420020&hilit = latency#p420020

Set network cache to 500, and disable HW acceleration
Run Code Online (Sandbox Code Playgroud)

2015年:减少流媒体和实时流媒体方法的延迟

mLibvlc.setDevHardwareDecoder(LibVLC.DEV_HW_DECODER_AUTOMATIC); …
Run Code Online (Sandbox Code Playgroud)

android vlc libvlc vlc-android

7
推荐指数
0
解决办法
325
查看次数

编写 HLSL4 像素着色器以从 2Dtexture 执行查找

我是一个初学者像素着色器作家,我遇到了一些麻烦。我想获取一个 256x256、16 位输入 (DXGI_FORMAT_R16_UINT) 图像,并通过一个 256x256 查找纹理 (DXGI_FORMAT_R8_UNORM) 将其转换为 256x256 8 位输出。

不幸的是,我似乎遇到了很多麻烦,输出似乎总是钳制为黑色或白色。

此外,我不确定我应该使用哪种 DXGI 格式,以及哪种数据类型与每种格式相关。

// Global Variables
Texture2D<uint> imgTexture : register( t0 );
Texture2D lutTexture : register( t1 );
SamplerState SampleType : register( s0 );

// Structures 
struct PS_INPUT
{
  float4 Pos : SV_POSITION;
  float2 Tex : TEXCOORD0;
};

// Pixel Shader
float4 PS( PS_INPUT input) : SV_Target
{
  uint pixelValue = imgTexture[input.Tex];
  uint2 index = { pixelValue / 256, pixelValue % 256 };
  // uint row = …
Run Code Online (Sandbox Code Playgroud)

lookup-tables hlsl pixel-shader direct3d11

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

如何以编程方式处理BLE外设从iOS设备中删除配对

iOS应用程序以中央模式运行,BLE外围设备(例如BLE113)具有加密的GATT特性 - 当iOS应用程序扫描并连接到外围设备时,它会在发现加密的GATT特征时自动请求配对.

如果iOS设备和BLE外围设备都保持配对,一切都很好.

但是,如何处理BLE外设在内部删除所有绑定信息的情况,而不通知iOS设备它正在删除配对键?

iOS CoreBluetooth命令将失败.

有什么可以通过编程方式来解决这个问题吗?要么重新请求配对,要么取消配对iOS端?

iOS受蓝牙限制很多 - 所以我看不到很多好的解决方案,除了检测写入失败时,还要求用户手动取消配对(这是蹩脚的)

iphone bluetooth ios core-bluetooth swift

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

Word加载项CustomXMLParts数据建模和/或性能优化

环境:Mac 10.12.6,Word 2016(16.11.1),@ microsoft/office-js"^ 1.1.4"

我想知道在如何使用CustomXMLParts方面有任何指导方针或最佳实践,以便最大限度地提高读/写性能,或者是否有一种"理想"方式来为同一目的在XML部件中建模数据.

我正在编写一个加载项,我需要在可见文档之外保留一些数据,但是在docx文件中.

例如,我存储了一张发票清单(可能是100-200张发票),每张发票都有典型的结构化数据(名称,ID,日期,工作项列表)和自由式备注部分,最多可包含5个-10kb的文字,说明等

我拿这些发票,在Word文档中渲染其中一些,然后在任务窗格中对其余数据进行一些可视化分析 - 用户可以将注释写入(并保存)回自定义XML部件(到该发票中)他们正在看).

现在......这里我有点困惑......我不确定将每张发票作为单独的CustomXMLPart存储在文件中是否更好(例如每张发票1个XML文件),或者是否最好存储所有发票在单个大型CustomXMLPart中,或者如果存在中间地点(例如,每个XML部分有10个发票).如上所述,用例是回读所有发票,然后偶尔更新10-20%的发票中的数据.

现在,我正在为每个XML部分存储1个发票,当我加载我的插件并进行批量读取以将所有内容都存入内存时,每个发票需要250-500平方英寸才能将它们并行读取(所以,250-500ms*100-200发票).顺序地,它需要更长的时间(2-3倍长).使用performance.now()使用挂钟计时进行测试.

这似乎很长一段时间,所以我不知道我是否做错了 - 或者这只是从这些文件中打开和提取数据所需的时间?

// Sequential example - excluding error handling and type-safety
// Parallel equivalent is essentially a Promise.all with a .map

// Approx 50ms
let result = await this.xmlPartsHelper.getByNamespaceAsync(...);

for (const item of result.value) {
    // Approx 150-200ms
    result = await this.xmlPartsHelper.getByIdAsync(item.id);

    // Approx 150-200ms
    result = await this.xmlPartsHelper.getXmlAsync(result.value);

    // Approx 5ms
    const invoice = this.mapper.reverseMap(result.value);
    invoices.push(invoice)
}
Run Code Online (Sandbox Code Playgroud)

我使用Promises手动包装Office-JS回调,但我已经使用async/await,然后是/ catch和office-js回调测试了这个示例 - 结果大致相同.

public getByNamespaceAsync(namespace: string): Promise<Office.AsyncResult> …
Run Code Online (Sandbox Code Playgroud)

ms-word officedev office-addins office-js

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