小编rad*_*vus的帖子

是否可以在VMWare上运行Android设备模拟器(通过Android Studio 2)?

我一直在运行Android Studio 1.5.1在Windows 2012 R2的WMWare副本上进行开发,一切正常.我已经能够毫无问题地运行设备模拟器并启动在AVD中运行的各种版本的Android.

Android Studio 2.x更改 我最近安装了Android Studio 2.0(有关确切版本,请参见下图).

Android Studio版本信息

现在,当我尝试运行模拟器时,没有任何反应.好吧,实际上当我尝试启动设备时,我确实在Studio的状态栏中看到了一条消息,但随后该消息消失,之后没有任何反应.

开始...

有一个警告,我需要关闭Hyper-V(见下图),但我不相信这是可能的,因为这是一个VM.

不再可能吗?

是否无法再在VM上运行模拟器?

关闭Hyper-V

android android-virtual-device android-studio-2.0

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

为什么Main.storyboard中出现内部不一致,我该如何解决它?

我在Sierra macOS的XCode 8上打开了一个项目,该项目昨天正在运行,没有任何问题.
现在我明白了:

文档"Main.storyboard"有2个内部不一致的地方被发现和修复.这可能是由于SCM操作(例如合并)造成的.请保存文档以解决不一致问题.

故事板错误

我无法点击其中任何一个按钮.他们没有回应.除了关闭项目,我什么也做不了.我现在应该怎么做才能解决这个问题?

有谁知道发生这种情况的原因?

xcode storyboard ios

15
推荐指数
1
解决办法
3492
查看次数

当Iterating Over ConcurrentDictionary并且只读取时,ConcurrentDictionary被锁定了吗?

  1. 我在我的Web应用程序中创建了一个ConcurrrentDictionary作为应用程序对象.它在会话中共享.(基本上用作存储库.)
  2. 有时,任何可用会话都会将新项添加到字典中.

仅允许管理员查看

现在,我想允许管理员列出字典中的所有值,但是管理员不会添加或删除项目,而是我只会通过迭代通过读取集合来为管理员提供查看项目的方法这几项.

(伪)代码看起来像这样:

foreach (var e in EmployeeCache.Instance.AllEmployees)
{
     Console.WriteLine(e.Key);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

如果我遍历项目,ConcurrentDictionary在被读取时会被锁定吗?换句话说,ConcurrentDictionary是否被锁定,以便在管理代码只是通过ConcurrentDictionary迭代时,其他会话将无法添加或删除?

如果没有锁定,你能解释一下吗?

如果您认为它没有锁定,您能否快速总结一下它是如何做到的?例如,它是否为只读操作创建ConcurrentDictionary的副本,然后允许读取迭代运行 - 了解不会看到对真实字典的并发更改?

我想要确定的是什么

我试图了解提供ConcurrentDictionary查看器的影响,该查看器可以由管理员经常刷新.IE如果他们经常刷新它可能会影响Web应用程序的性能.会话正在等待对象解锁,以便他们可以添加/删除项目?

c# collections session multithreading dictionary

12
推荐指数
2
解决办法
9233
查看次数

如何确保链接支持Twitter预览?

首先,请注意我搜索了一个SocialMediaStackExchange来询问这个问题,但似乎没有.

这就是我想知道的.当向Twitter发布推文时,如果它是YouTube链接或特定网站的链接,则twitter将显示扩展功能,用户可以单击该功能以在Twitter界面中预览媒体内容.

有没有人知道这是由Twitter决定还是有一些方法我可以改变我的网站以启用Twitter上的预览?

当我在推特上发布人们可以预览文章第一部分内容的博客文章时,我想这样做.这是一个例子:(只需添加链接,显示所显示的预览内容)在这种情况下,它是InfoWorld上的一篇文章.


Web链接可创建内容预览


Twitter上有一个链接解释扩展内容,但不是如何实现它. https://blog.twitter.com/2012/experience-more-with-expanded-tweets

twitter preview

11
推荐指数
1
解决办法
1万
查看次数

Android Nougat:为什么在以编程方式选择时,Fragment上的复选框具有不完整状态(但在Lollipop上看起来很好)

以下是我的设置选项卡(片段)在进行任何选择之前的样子:

没有选择

从主片段中,用户可以从Spinner中进行选择 - 如下所示(在用户做出选择之后):

超级被选中

当用户进行该选择时,加载用户先前选择的用户首选项中保存的选项,并选择相应的复选框.现在,第一个快照中显示的复选框如下所示:

部分选中

请参阅,现在具有相关复选框的项目设置为粉红色?那些物品变成了粉红色但是由于某种原因在牛轧糖上没有显示支票. 实际上选择了这些项目,因为如果我单击它们,那么它们将被取消选择.

Lollipop按预期工作 但是,如果我在Lollipop上运行该程序,则项目将按预期完全选中(选中复选框).

在Nougat Works上手动设置它们 另外,如果我在Nougat上手动设置它们(在应用程序运行时单击它们),那么它会在应用程序继续运行时按照预期在旋转器中选择的所有其他项目工作.

复选框按预期选择

以下是设置内容的基础知识:

当在Spinner中选择项目时,我得到rootview并调用findViewById()

  addCharsTabCheckBox = (CheckBox)rootView.findViewById(R.id.addCharsTabCheckBox);
     maxLengthTabCheckBox = (CheckBox)rootView.findViewById(R.id.maxLengthTabCheckBox);
Run Code Online (Sandbox Code Playgroud)

之后我只是在每个CheckBox上调用setChecked():

addCharsTabCheckBox.setChecked(currentSiteKey.isHasSpecialChars());
Run Code Online (Sandbox Code Playgroud)

你会碰巧知道为什么会这样吗?

你以前见过这种局部行为吗?

编辑#1 在运行时我还发现未选择的项目将显示为部分选中(复选框但灰色),如下所示:

未选中但已检查

实际上没有选择那些灰色项目.此外,如果我在查看"设置"片段时更改设备方向,则复选框(显然)会重新绘制,并按预期显示未选中状态.

编辑#2

刚刚在Marshmallow上进行了测试,它在该API级别上也能正常工作(或正如预期的那样). 棉花糖也有效


编辑3

我已经基于Android Studio 2.3.3提供的TabPage模板创建了一个简化的项目,以便更密切地研究这个问题.

公共GitHub项目

我已将代码添加到公共GitHub仓库中,以便您可以获取并尝试:https: //github.com/raddevus/CheckBoxFragTest

该项目与上述项目略有不同,但它们都基于Android Studio 2.3.3提供的模板.测试项目包括3个选项卡,因此我可以调查是否在所有选项卡页面上看到相同的奇怪行为.SPOILER:我没有.

以下是该应用程序从第一个标签页看起来的样子:

标签页1

两个最有趣的部分

  1. 单击选项卡页面1上的[切换复选框]按钮时,它将在两个复选框上调用setChecked(tabPage2上的1个复选框和tabPage3上的1个复选框)

  2. 当您单击TabPage3上的按钮时,它将设置tabPage1上显示的复选框(如上图所示).

问题

在Nougat上,当您单击TabPage1上的[Toggle Checkbox]按钮时,它会将tabPage2上的复选框设置为奇怪状态,我们在原始问题报告中看到了.但是,tabPage3上的复选框已设置并完全按预期进行检查.

编辑4

Oreo Android v8.0 API等级26

我有更多的数据.我刚刚在Oreo(模拟器)上运行应用程序,我在那里看到了同样的问题.这是我运行的版本:

奥利奥版本

这是我第一次点击[Toggle Checkbox]按钮时的样子.

部分选中的奥利奥州

但是,请注意tabpage3上的复选框实际上是正确选择的,即使它是从相同的静态布尔值设置的:

tabpage3复选框 - 已选中

如果再次单击[切换复选框]按钮,则会出现奇怪的灰色复选框状态(实际上是未选中状态).

部分选中未选中

但是,tabpage3上的复选框实际上是未选中的.

现在,如果再次单击[切换复选框],它将正确选择tabPage2上的复选框,只要应用程序在此之后运行,它将正常工作.

android android-fragments android-checkbox android-5.0-lollipop android-7.0-nougat

11
推荐指数
1
解决办法
1046
查看次数

为什么我的Model对象在dotnet core 2.x Razor Page app中的Razor页面上始终为null?

我正在创建一个Partial View作为我的Index.cshtml的一部分.我正在遵循Microsoft文章中概述的基础知识=> https://docs.microsoft.com/en-us/aspnet/core/mvc/views/partial?view=aspnetcore-2.1

它的摘要是我:在我的Index.cshtml文件中添加一个span,它实际上是从Razor页面加载了HTML.Index.cshtml中的相关HTML如下所示:

<span id="basicView">
    @{ 
        Model.UserName = "IndexUser";
        await Html.RenderPartialAsync("BasicPartial", Model);
    }
</span>
Run Code Online (Sandbox Code Playgroud)

我已将公共属性添加到R​​azorPage中名为UserName的IndexModel中,它看起来如下所示:

namespace FirstCore.Pages
{
    public class IndexModel : PageModel
    {

        public string UserName;
        public void OnGet()
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

对于这个例子,它保持非常简单.因此,在Index.cshtml中的HTML中,您可以看到我将该公共属性的值设置为"IndexUser",然后将Razor页面的名称("BasicPartial" - View)和Model对象传递给BasicaPartial剃刀Page.

BasicPartial页面非常简单 - 从Visual Studio 2017模板生成 - 添加... Razor页面...整个事情看起来像:

@page
@model IndexModel
@*
    For more information on enabling MVC for empty projects, visit http://go.microsoft.com/fwlink/?LinkID=397860
*@
<div>This is the text and the user name is @(Model.UserName).</div>
Run Code Online (Sandbox Code Playgroud)

实际上,唯一重要的部分是我从传入的模型中读取UserName的属性值的地方.您可以看到我还将@model定义为顶部的IndexModel.

主要问题 - 模型总是空的

当我运行这个非常简单的例子时.应用程序告诉我Model对象为null.

模型为空

你可能认为它是UserName是null,但是如果我把一个非常简单的指令放在顶部就好了

<div>@Model</div> 
Run Code Online (Sandbox Code Playgroud)

然后它告诉我Model是null,即使我知道我正在传递它. …

model .net-core razor-pages

11
推荐指数
2
解决办法
2856
查看次数

为什么 Service Worker 在本地主机上运行时似乎不写入 Google Chrome 中的控制台?

我有一个使用新的 Service Worker(渐进式 Web 应用程序)的非常简单的示例 - 请参阅https://developers.google.com/web/fundamentals/getting-started/primers/service-workers

当我从本地主机运行应用程序时,该示例似乎无法在 console.log() 上写入。然而,它确实可以在我创建的 plunkr 中工作。以下是在 plunkr 上运行它的步骤:

1.使用以下 URL(从 Google Chrome 网络浏览器),将出现 Plunkr 编辑器:https://plnkr.co/edit/FgG2krKDuSmIddR1Pskd ?p=preview

以下是 ServiceWorker.js 中的代码,它应在控制台中显示 fetch 语句。

//serviceWorker.js

console.log("well, I'm in serviceWorker.js");
self.addEventListener("fetch", function(event) {
  console.log("Fetch request for:", event.request.url);
});
Run Code Online (Sandbox Code Playgroud)

plunkr 第一视图

2.到达那里后,打开 Chrome 开发控制台(这样您就可以看到输出) -提示:在 Chrome 中按F12应打开您的控制台。

运行 plunkr。您应该看到如下所示的输出:

控制台输出

失败

当我在本地运行相同的代码(在运行 IISExpress 的本地主机上)时,我看不到输出到控制台的 fetch 语句。(这是ServiceWorker.js文件中的代码)我只看到初始注册。

看起来像: 服务人员注册

我尝试过的事情

  1. 停止并重新启动 IIS Express
  2. 更改为 Chrome 开发工具“应用程序”选项卡并强制更新(参见下图)
  3. 更改为 Chrome 开发工具“应用程序”选项卡并强制“未注册”再次运行并重新注册(参见下图)

更新和注销

在 Chrome 中,您永远不会看到控制台因获取项目而更新。

4. 在 Firefox 中本地运行 …

javascript google-chrome service-worker

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

当 Xcode “从 &lt;连接的设备&gt; (ipad) 复制共享缓存符号”时,它在做什么?

我正在开发基于 SwiftUI 的 iPhone / iPad 应用程序,当我将 iPad 连接(通过 USB 线)到 Mac Mini(运行 Xcode 的开发机器)时,运行应用程序时有时会出现如下所示的消息来自 Xcode(在调试模式下):

从连接的设备复制共享符号

当 Xcode 说“从 <连接的设备> 复制共享缓存符号”时,它在做什么?

为什么它要从 ipad 复制这些?看起来它会从 Xcode 或我连接的 Mac Mini(运行 Xcode 的开发机器)复制这些。

另外,我猜它正在通过 USB 电缆发送这些符号,对吧?

这些是调试符号吗?

xcode ipad ios

9
推荐指数
0
解决办法
1011
查看次数

Android Studio 1.5.1上的AVD Manager和安装到自定义位置模拟器将无法运行

我安装了Android Studio(1.5.1 - 有关构建详细信息,请参阅图像). 在此输入图像描述

在安装时我选择了自定义选项,因此我可以安装特定路径.我知道我的%SystemDrive%指向网络位置,我想安装到我的本地磁盘.

因此,这意味着默认情况下,应用程序将安装到:\networkpath\users\myUserName\Android\SDK

但是,由于我选择了自定义安装,因此我选择了一个本地路径:c:\ users\myUsername\Android\SDK

项目创建和建设工作正常

一切似乎安装得很好,我能够创建一个新项目并构建它没有任何问题.

但是,当我试图运行构建然后基本上无声地失败.模拟器从未出现,也没有发生错误.Android Monitor只显示一条消息,指出未检测到连接设备. AVD经理

幸运的是,我知道有关检查模拟器发生了什么,我打开了AVD Manager.列出的设备显示错误.我右键单击了设备并选择了"查看详细信息".那时AVD经理表明它正试图从网络路径读取,即使我在自定义安装中改变了这一点.\networkPath\Users\myUserName\Windows.android\avd\Nexus4.avd和\networkPath\Users\myUserName\Windows.android\avd\Nexus4.ini

注册表编辑

我关闭了Android Studio.然后我打开regedit并编辑了以下值:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList,其原貌如下: 注册表值

并更改它们以便它们都直接指向c:\驱动器(而不是%systemdrive%)

环境变量:ANDROID_SDK_HOME

我发现其他人已经提到了ANDROID_SDK_HOME环境变量,我注意到我的机器根本没有定义该值,所以我添加了它并将其设置如下:c:\ users\myUsername\Android\SDK

然后我再次启动了Android Studio并启动了AVD Manager.这次没有设备显示,而是AVD管理器提示我使用以下窗口创建一个: AVD Manager创建新设备

现在,我正在尝试使用Google API下载其中一个设备,但每次我都会下载并成功安装,但随后会从列表中消失.请注意,在下一张图片中,没有API级别15或16,其中包含用于arm架构的Google API.
在此输入图像描述

注意另外存在一个用于与臂API级别17列出.我现在将尝试安装那个.

下载图片

您可以看到它已成功下载并安装正常.现在,我单击[完成]按钮.该项目不再出现在我的列表中. 项目消失了

将自动选择API Level 15项.我假设是因为当我安装Android Studio时最初下载了一个.

最后,如果您取消选中[] show downloadable system images复选框 - 这非常令人困惑 - 而且我假设您已经下载了已经下载的那些,那么您会看到它只显示了一个API Level 15虚拟设备. 只有一个设备

这一切都非常糟糕.有没有人见过这个问题?有没有其他人能够修复它?

我假设我只需要完全重新安装Android Studio.

android android-virtual-device android-studio virtual-device-manager

6
推荐指数
1
解决办法
1万
查看次数

如何使用我的私钥文件加载我的 Solana 钱包?

我正在尝试使用通过 Solana 命令行生成的私钥在 JavaScript / Node.js 中创建钱包。我想使用该web3.Keypair.fromSeed()方法。

以下是我迄今为止所采取的步骤。

  1. 创建了一个 solana 钱包:solana-keygen new -o keyfile.json
  2. 显示该文件中的内容——它是一个 64 字节数组(这是一个测试密钥,因此不用担心这私钥

[237,158,92,107,132,192,1,57,8,20,213,108,29,227,37,8,3,105,196,244,8,221,184,199,62,253,98,131,33,165,165,215,14,7,46,23,221,242,240,226,94,79,161,31,192,163,13,25,106,53,34,215,83,124,162,156,8,97,194,180,213,179,33,68]

然而,调用fromSeed()只需要 32 个字节。3. 检查 solana 地址,以便我知道一切何时正常工作:

>  solana address -->
wm4MapPtFaUoSsyBJppVnChYMGvHzTeAL6BNZ5GmSqH
Run Code Online (Sandbox Code Playgroud)

这就是公钥

我如何调用web3.Keypair.fromSeed()加载该私钥并获取我的公共地址(也称为公钥)?

blockchain private-key smartcontracts solana

6
推荐指数
1
解决办法
1万
查看次数