我有一个VS2017项目编译成一个DLL,然后由其他人编写的EXE调用.这两个项目都针对.Net Framework 4.6.2.我重写了我的一个DLL方法来返回一个元组,并导入了相关的NuGet包.当我编译项目时,它在输出目录中包含System.ValueTuple.dll,然后将其部署到我的DLL加载并由EXE调用的其他机器上.但是当EXE尝试调用返回元组的方法时,它会崩溃:
意外错误无法加载文件或程序集'System.ValueTuple,Version = 4.0.1.0,Culture = neutral,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一.该系统找不到指定的文件.
我不明白为什么它找不到文件,因为它和我的DLL在同一个文件夹中.显然,MS没有在.Net Framework 4.6.2中包含此程序集.
请注意,我的DLL使用machine.config文件在Windows中注册.我猜测,如果我也将System.ValueTuple.dll添加到这个文件它将工作(尚未尝试,不知道这是最好的方法,特别是长期.)有更好的方法,除了等待4.6 .3并希望它包括这个组件?
我希望这可以让Android MediaPlayer使用身份验证从URL流式传输,但现在我不太确定.我没有问题让它从开放服务器流(没有身份验证),但我没有看到任何方式告诉MediaPlayer使用基本身份验证,除非使用该FileDescriptor参数工作?所以我尝试了这个,但得到了以下错误:
IllegalArgumentException: Expected file scheme in URI http://www.myserver.com/music.mp3
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
File f = new File(new URL("http://www.myserver.com/music.mp3").toURI());
FileInputStream fis = new FileInputStream(f);
mediaplayer.SetDataSource(fis.getFD());
Run Code Online (Sandbox Code Playgroud)
说a FileDescriptor只能用于本地file://URL而不是普通的http://URL 是否正确?如果是这样,有没有人对如何从需要使用Android进行身份验证的服务器进行流式传输有任何其他想法MediaPlayer?
添加了一个EventLogAppender,如下所示:
<appender name="eventLogAppender" type="log4net.Appender.EventLogAppender,log4net" >
<mapping>
<level value="ERROR" />
<eventLogEntryType value="Error" />
</mapping>
<mapping>
<level value="DEBUG" />
<eventLogEntryType value="Information" />
</mapping>
<mapping>
<level value="INFO" />
<eventLogEntryType value="Information" />
</mapping>
<mapping>
<level value="WARN" />
<eventLogEntryType value="Warning" />
</mapping>
<logName value="NewLogName" />
<applicationName value="AppName" />
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
它创建新的日志,NewLogName并添加应用程序名称为的Windows事件,AppName但它将事件添加到Application日志而不是NewLogName.
我已在注册表中更改权限,并且应用程序名称位于注册表中的正确位置.有任何想法吗?
我正在使用 java.net.URL.getPort() 从 URL 中提取端口号。大多数时候这效果很好。但是,当 URL 包含右括号字符“]”时,它将失败:
new URL("http://abc.com:123/abc.mp3").getPort();
returns: (int) 123
Run Code Online (Sandbox Code Playgroud)
但如果 URL 包含“]”我得到:
new URL("http://abc.com:123/abc].mp3").getPort();
returns: (int) -1
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑#1:作为测试,我将相同的代码粘贴到非 Android Java 应用程序中,并且端口号已正确返回,因此这似乎是 Android SDK 的异常情况。
也许这不是一个错误,因为文档没有详细说明fromHTML()究竟是什么,但它对我来说仍然是一个问题.如果提供的字符串按顺序包含两个或多个空格,则fromHTML()删除除1之外的所有空格:
Html.fromHtml("Test 123").toString()
(java.lang.String) Test 123
Run Code Online (Sandbox Code Playgroud)
如果我用 它替换空格似乎表现得如预期的那样,但是让我对程序的其他部分感到悲伤:
Html.fromHtml("Test 123").toString()
(java.lang.String) Test 123
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?
有一天我会擅长正则表达式但是现在......
我正在使用以下表达式解析一个查找MP3文件的HTML页面(可以正常工作):
"<A HREF=\"([^\"]+)\"[^>]*>([^<]+?)\\.mp3</A>"
Run Code Online (Sandbox Code Playgroud)
我现在想要搜索MP3和OGG文件.看起来像一个简单的OR修改(.mp3 || .ogg),但我不太确定我是如何把它放在那里的?有关详细信息,请参阅尝试使用Java正则表解析HTML目录列表中的链接.