我的基于 YAML 的 Azure DevOps 管道包含多个任务,其中continueOnError: true. 我故意这样做,以便即使其中一些测试套件失败(每个任务运行不同的测试套件),我也可以运行所有测试套件。目前,如果这些任务中的任何一个失败,构建将被标记为“部分成功”。现在我如何强制将构建标记为“失败”?
我可以通过在每个任务失败时设置构建变量来手动执行此操作,然后在最后一步中检查该变量的值。但是,如果管道中的任何先前步骤失败,那么强制构建失败的最简单方法是什么?
azure-devops azure-pipelines azure-pipelines-tasks azure-pipelines-yaml
在实施应用内结算或IAB时,文档会说您必须将其添加到清单中:
<uses-permission android:name="com.android.vending.BILLING" />
Run Code Online (Sandbox Code Playgroud)
从Android 6开始,如果用户已授予不属于" 普通 "权限类别的权限,则应在运行时检查应用程序.请注意,在API级别23,未列在此类别下的任何位置.所以...com.android.vending.BILLING
Manifest.permission.谷歌的指示在这里说,如果你想使用AdMob在Android应用通过谷歌Play服务,您必须确保用户的设备已经在谷歌Play服务,安装APK.但是,我在尝试使其工作时遇到了麻烦; 而且我注意到即使我在手机上卸载了Google Play服务更新(并且不打算检查服务是否可用),我的应用仍能完全检索并展示广告!这是LogCat中的错误,如下所示:
W/GooglePlayServicesUtil(26558): Google Play services out of date. Requires 4132500 but found 3159130
Run Code Online (Sandbox Code Playgroud)
据推测,我的手机出厂时仍然安装了原始版本的Google Play服务.我只是想知道我是否真的需要检查Google Play服务是否可以成功使用AdMob.现在它似乎没有.请有人能告诉我为什么我不得不做这个检查.是否在上面给出的谷歌链接上处理案例4 ......?
设备上缺少或禁用Google Play服务APK,如果用户明确卸载或禁用它,则可能会发生这种情况.
每次想要我在IDE中报告错误时,我都会在Android Studio的右下角看到一个闪烁的红色图标.这太刺激了!有谁知道如何禁用此功能?我正在使用Studio 2.3.3.
我正在使用SimpleLogger绑定SLF4J 1.7.5.根据文档,我可以使用simplelogger.properties文件中的org.slf4j.simpleLogger.logFile属性来指定日志文件OR System.out OR System.err.
但是我想将日志消息发送到BOTH System.out和日志文件.有谁知道如何使用SimpleLogger实现这一目标?(我正在使用Windows,所以不能使用tail -f只是在控制台窗口中跟踪日志文件;我也不想在Windows中使用模拟'tail -f'的第三方实用程序.)
假设我在Apache Thrift IDL文件中定义了一个包含两个字段的结构.例如:
struct Thing {
1: optional string name,
2: optional i32 size
}
Run Code Online (Sandbox Code Playgroud)
这意味着客户端可以提供没有字段,名称,大小或名称和大小的Thing对象.但是,如果我想要的东西对象有两种名称或大小(异或)?目前,我必须使用我的实现代码来防止客户端提供没有字段或两个字段的Thing; 并记录/评论客户端应如何指定Thing对象.
总之,如果有人定义一个包含各个领域的一个结构,是有可能表现在IDL本身,你只想要恰好一个在客户端提供这些领域的?(我正在使用Apache Thrift 0.9.0.)如果您能说出以下内容(| =或),那就太棒了:
struct Thing {
1: required (string name | i32 size)
}
Run Code Online (Sandbox Code Playgroud) 在这个问题上,我一直在墙上撞了好几个小时.Google Analytics 的v4文档指定了两种不同的方式来让您的应用报告未捕获的异常.我无法工作.在这两种情况下,当我在我的应用程序中触发未捕获的异常时(在我自己的代码中使用虚拟名称),我在LogCat中看到这样的行:
08-17 17:33:30.248: V/GAV4(8968): Thread[main,5,main]: Tracking Exception: MyException (@MyClass:myMethod:143) {main}
08-17 17:33:30.248: V/GAV4(8968): Thread[main,5,main]: Dispatch call queued. Dispatch will run once initialization is complete.
08-17 17:33:30.248: V/GAV4(8968): Thread[main,5,main]: Passing exception to original handler.
Run Code Online (Sandbox Code Playgroud)
...然后是我的异常的堆栈跟踪,最后是:
08-17 17:33:44.282: I/Process(8968): Sending signal. PID: 8968 SIG: 9
Run Code Online (Sandbox Code Playgroud)
从LogCat看起来GA似乎从未实际向Google的服务器发送异常!
如果有人设法在他们的Google Analytics控制台中报告未被捕获的异常情况,那么如果他们可以与我们分享他们是如何做到这一点那就太棒了.我已经在SO上看过其他人这样的查询(例如,这里和这里),但没有确认报告未捕获的异常.
我已经在GA控制台中显示了屏幕视图,所以我必须做正确的事情.但不是未被捕获的例外.我假设一个人应该在行为>崩溃和异常下寻找它们,并且我已经将结束日期设置为今天(默认情况下似乎设置为昨天).最后,在我的analytics_global_config.xml中,我有:
<integer name="ga_dispatchPeriod">1</integer>
Run Code Online (Sandbox Code Playgroud)
因为否则默认值是1800秒,在这种情况下,我假设在GA控制台出现后至少30分钟内不会看到异常.ga_dryRun也是假的.
假设我有一个如下所示的自定义类型:
[DataContract]
public class CompositeType
{
[DataMember]
public bool HasPaid
{
get;
set;
}
[DataMember]
public string Owner
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)
和一个 WCF REST 接口,如下所示:
[ServiceContract]
public interface IService1
{
[OperationContract]
Dictionary<string, CompositeType> GetDict();
}
Run Code Online (Sandbox Code Playgroud)
那么我如何实现该方法以返回一个如下所示的 JSON 对象...
{"fred":{"HasPaid":false,"Owner":"Fred Millhouse"},"joe":{"HasPaid":false,"Owner":"Joe McWirter"},"bob":{"HasPaid":true,"Owner":"Bob Smith"}}
Run Code Online (Sandbox Code Playgroud)
我不希望它看起来像这样:
[{"Key":"fred","Value":{"HasPaid":false,"Owner":"Fred Millhouse"}},{"Key":"joe","Value":{"HasPaid":false,"Owner":"Joe McWirter"}},{"Key":"bob","Value":{"HasPaid":true,"Owner":"Bob Smith"}}]
Run Code Online (Sandbox Code Playgroud)
理想情况下,我不想改变方法的返回类型。
我尝试了许多不同的方法,但找不到有效的解决方案。令人烦恼的是,很容易用一行代码生成正确形状的 JSON 对象结构Newtonsoft.Json:
string json = JsonConvert.SerializeObject(dict);
Run Code Online (Sandbox Code Playgroud)
其中dict定义为:
Dictionary<string, CompositeType> dict = new Dictionary<string, CompositeType>();
dict.Add("fred", new CompositeType { HasPaid = false, Owner = …Run Code Online (Sandbox Code Playgroud) 我在https://github.com/apache/incubator-livy/blob/master/docs/rest-api.md 上为 Livy 的 REST API 的部分编写了一个 Java 客户端。客户端使用 Spring 的RestTemplate.getForObject()andpostForObject()分别发出 GET 和 POST 请求。Livy 服务器使用 Kerberos 进行保护。
GET /sessions和GET /batches请求工作正常:我得到了 Livy 的预期响应。但是POST /sessions和POST /batches请求都失败了:
org.springframework.web.client.HttpClientErrorException: 401 Authentication required
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么 GET 请求成功时 POST 请求失败?我的代码对身份验证没有做任何明确的事情。
我已经尝试通过 Kerberos 以几个不同的用户身份进行身份验证,但我总是遇到这个问题。Livy 是否需要额外的配置来允许来自特定用户的 POST 请求(因为 POST 请求有效地创建了交互式会话或将作业提交给 Spark)?
我有一个返回 Pandas DataFrame 的 Python 函数。我在 Spark 2.2.0 中使用 pyspark 的RDD.mapPartitions(). 但是我无法将返回的 RDDmapPartitions()转换为 Spark DataFrame。熊猫生成此错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)
说明问题的简单代码:
import pandas as pd
def func(data):
pdf = pd.DataFrame(list(data), columns=("A", "B", "C"))
pdf += 10 # Add 10 to every value. The real function is a lot more complex!
return [pdf]
pdf = pd.DataFrame([(1.87, 0.6, 7.1), (-0.3, 0.1, 8.2), (2.8, 0.3, 6.1), (-0.2, 0.5, …Run Code Online (Sandbox Code Playgroud) android ×3
admob ×1
apache-spark ×1
azure-devops ×1
c# ×1
java ×1
json ×1
kerberos ×1
livy ×1
logging ×1
pandas ×1
permissions ×1
pyspark ×1
python ×1
rest ×1
slf4j ×1
spring-rest ×1
thrift ×1
wcf ×1