小编pat*_*ite的帖子

setURLStreamHandlerFactory和"java.lang.Error:Factory已设置"

我遇到了一个因URL.setURLStreamHandlerFactory(factory);正在更新的Android应用程序中调用而导致的意外错误.

public class ApplicationRoot extends Application {

    static {
        /* Add application support for custom URI protocols. */
        final URLStreamHandlerFactory factory = new URLStreamHandlerFactory() {
            @Override
            public URLStreamHandler createURLStreamHandler(final String protocol) {
                if (ExternalProtocol.PROTOCOL.equals(protocol)) {
                    return new ExternalProtocol();
                }
                if (ArchiveProtocol.PROTOCOL.equals(protocol)) {
                    return new ArchiveProtocol();
                }
                return null;
            }
        };
        URL.setURLStreamHandlerFactory(factory);
    }

}
Run Code Online (Sandbox Code Playgroud)

介绍:

这是我的情况:我正在维护一种用于企业时尚的非市场应用程序.我的公司销售的平板电脑包含由业务开发和维护的预安装应用程序.这些预安装的应用程序不是ROM的一部分; 它们作为典型的未知源应用程序安装.我们不会通过Play商店或任何其他市场进行更新.相反,应用程序更新由自定义Update Manager应用程序控制,该应用程序直接与我们的服务器通信以执行OTA更新.

问题:

我维护的此Update Manager应用程序偶尔需要自行更新.应用程序更新后,它立即通过android.intent.action.PACKAGE_REPLACED广播重新启动,我在AndroidManifest中注册.但是,在更新后立即重新启动应用程序时,我偶尔会收到此消息Error

java.lang.Error: Factory already set
    at java.net.URL.setURLStreamHandlerFactory(URL.java:112)
    at …
Run Code Online (Sandbox Code Playgroud)

java android

16
推荐指数
2
解决办法
4238
查看次数

如何确定Git合并是否正在进行中

是否有一个Git命令可用于确定合并是否在进程中(即未提交)?我知道我可以简单地检查一下.git/MERGE_HEAD,但对于命令行脚本来说这是正确的和/或面向未来的吗?

git git-merge

15
推荐指数
3
解决办法
5318
查看次数

从现有字节[]生成新的byte []

我想从现有的字节数组生成一个"新"字节数组,而不必从堆中实际分配.换句话说,"新"字节数组应该与现有数据共享相同的基础数据.问题是我希望新的字节数组具有不同的长度.

byte[] buffer = { 0x01, 0x02, 0x04, 0x08, 0x10 };
byte[] shared = slice(buffer, 1, 3);
/* shared should be { 0x02, 0x04, 0x08 } and have length of 3 */
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我有一个字节数组,我需要从中提取数据包,然后将该数据包传递给单参数方法,该方法只需要一个byte[].我想避免复制数据包中包含的数据.就我的目的而言,可以假设内容buffer不会在范围内发生变化shared.

这可能吗?在使用缓冲区时,似乎是一个常见的事情.提前致谢,

java arrays

2
推荐指数
1
解决办法
663
查看次数

标签 统计

java ×2

android ×1

arrays ×1

git ×1

git-merge ×1