小编som*_*ame的帖子

Espresso UI测试无法识别onView()

我花了一整天用Espresso设置Junit4仪器测试,但似乎无法完成最后一步.无论我做什么,都不会认出这种onView()方法.我已经尝试了多个SDK/support-lib版本,到目前为止还没有.我已经浏览了所有谷歌设置指南和许多stackoverflow帖子,转到这里作为我的最后希望.

Gradle版本: com.android.tools.build:gradle:1.5.0

Gradle文件:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary  'org.apache.http.legacy'

    defaultConfig {
        applicationId "lv.my.android"
        minSdkVersion 9
        targetSdkVersion 22
        testApplicationId "lv.my.android.tests"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    packagingOptions {
        exclude 'LICENSE.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }

    compileOptions {
        sourceCompatibility = 'VERSION_1_7'
        targetCompatibility = 'VERSION_1_7'
    }

    signingConfigs {
        beta {
            storeFile file("beta.keystore")
            storePassword "betabuild"
            keyAlias "key"
            keyPassword "betabuild"
        }
        release
    }

    buildTypes {
        debug {
            debuggable true
            applicationIdSuffix '.debug'
            versionNameSuffix '-DEV'
            minifyEnabled false …
Run Code Online (Sandbox Code Playgroud)

java android junit4 android-gradle-plugin android-espresso

30
推荐指数
3
解决办法
9395
查看次数

调用SmsManager.sendTextMessage()时,Android 8需要READ_PHONE_STATE

我的应用程序无法在新的Android 8更新上发送短信.我收到错误,我没有READ_PHONE_STATE权限.

java.lang.SecurityException: Neither user 10179 nor current process has android.permission.READ_PHONE_STATE.
    at android.os.Parcel.readException(Parcel.java:1942)
    at android.os.Parcel.readException(Parcel.java:1888)
    at com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:789)
    at android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:329)
    at android.telephony.SmsManager.sendTextMessage(SmsManager.java:312)
    at com.cordova.plugins.sms.Sms.send(Sms.java:192)
    at com.cordova.plugins.sms.Sms.access$400(Sms.java:22)
    at com.cordova.plugins.sms.Sms$1.run(Sms.java:102)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
    at java.lang.Thread.run(Thread.java:764)
Run Code Online (Sandbox Code Playgroud)

通常这种错误很好 - 我只是意识到我需要一个许可并要求它.但在这种情况下,我找不到任何需要READ_PHONE_STATE来使用SmsManager的文档.这里没有sendTextMessage也没有新的Android 8 更新说明.后者提到要获取硬件序列号,我现在需要READ_PHONE_STATE权限.

进一步研究我发现很多其他人都遇到过这个问题,但除了要求获得许可外,没有任何人有任何细节或解决方案.

所以今天我用简单的纯应用程序重新创建了问题,只需要SEND_SMS权限并发送短信.并得到了完全相同的问题.它适用于Android 8以下的所有内容.但是在Android 8上崩溃了权限错误.如果有人想要重新创建它,这是源代码.

compileSdkVersion 26
buildToolsVersion "26.0.2"
defaultConfig {
  applicationId "com.example.usr.smstest"
  minSdkVersion 21
  targetSdkVersion 26
}
Run Code Online (Sandbox Code Playgroud)
package com.example.usr.smstest;

import android.Manifest;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat; …
Run Code Online (Sandbox Code Playgroud)

sms android android-permissions android-8.0-oreo

22
推荐指数
1
解决办法
3454
查看次数

图层列表中的色调位图

我正在尝试将色调应用于<layer-list>中的位图

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape  xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
            <solid android:color="@color/grey" />
            <size android:width="45dp" android:height="45dp"/>
        </shape>
    </item>
    <item android:left="5dp" android:right="5dp" android:top="5dp" android:bottom="5dp">
        <bitmap android:src="@drawable/ic_action" android:tint="#FF000000"   />
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

预览显示它应该工作,FROM ANDROID-STUDIO: 在此输入图像描述

但是在设备上部署时它不会着色: 在此输入图像描述

如果我在布局中使用ImageView,它确实正确着色,但是使用了图层列表失败了.我相信我已经尝试过每一个没有结果的tintMode.

android tint bitmap

19
推荐指数
1
解决办法
7049
查看次数

PHP - 嵌套输出缓冲

我的功能有:

ob_start();
//Include of some files
$content = ob_get_contents();
ob_end_clean();
Run Code Online (Sandbox Code Playgroud)

现在在那些包含是另一个使用相同代码的函数,它们似乎发生冲突.有可能像这样使用它们吗?

php nested buffering ob-start

14
推荐指数
2
解决办法
8224
查看次数

在php中使用curl,将客户端证书和私钥放在单独的文件中

我需要一些帮助来重写这个使用*.pem (CA cert)的PHP curl代码,Client certprivate key在一个文件中:

curl_setopt($curl, CURLOPT_URL, $this->url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSLCERT, $this->keystore);
curl_setopt($curl, CURLOPT_CAINFO, $this->keystore);
curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $this->keystorepassword);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
Run Code Online (Sandbox Code Playgroud)

所以它可以使用CA certificate,Client CertificatePrivate Key在单独的文件中.

与此命令行示例一样:

curl -d "var1=value1&var2=value2&..." -G -v --key key.pem --cacert ca.pem --cert client.pem:xxxxxx https://www.somesite.com/page

php curl certificate

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

在 Electron 主线程中使用“express”,找不到模块

我正在尝试在main.js文件中使用express库。它在我的开发版本上运行良好,但是当我打包应用程序时,我得到

错误:找不到模块“express”

我不太确定电子主线程是如何工作的,它是否由其他构建工具单独打包,我是否需要手动定义(包含)包?我的应用程序由 webpack 打包,并且我在package.json 中包含了库。我发现的每个示例都只包含快速库并继续前进,我找不到任何其他步骤。

包.json

{
  "name": "basic-electron-react-boilerplate",
  "version": "0.7.0",
  "description": "Minimal and modern react+electron+webpack boilerplate",
  "author": "Phillip Barbiero",
  "homepage": "https://github.com/pbarbiero/basic-electron-react-boilerplate",
  "repository": {
    "type": "git",
    "url": "https://github.com/pbarbiero/basic-electron-react-boilerplate.git"
  },
  "build": {
    "appId": "your.id",
    "mac": {
      "category": "your.app.category.type"
    }
  },
  "license": "MIT",
  "main": "main.js",
  "scripts": {
    "prod": "webpack --config webpack.build.config.js && electron --noDevServer .",
    "test": "node  test.js",
    "dev": "webpack-dev-server --hot --host 0.0.0.0 --config=./webpack.dev.config.js",
    "build": "webpack --config webpack.build.config.js",
    "package": "webpack --config webpack.build.config.js",
    "postpackage": …
Run Code Online (Sandbox Code Playgroud)

express electron electron-builder

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

工作完成后无法停止工作者(ListenableWorker)任务

我似乎找不到停止我的工作任务的正确方法。我正在调用.set(Result.success());my ResolvableFuture<Result>,但是它从未onStopped()在我的类中触发,其他订阅的回调似乎仍在我的worker中处于活动状态。

  • 我的工人开始尝试寻找特定的BLE设备
  • 它连接到该设备并尝试退出 Result.success()
  • 如果工作时间超过3分钟,则尝试退出。

Result.success()连接到BLE设备后调用后,它仍将保持对onConnectionStateChange内部connectGatt()函数的有效引用。

onStopped()即使在操作系统强行停止我的工作人员之后,它似乎也没有调用,因为我从不记得在日志中看到过它。

即使在创建新工作人员之后,我仍然可以在老工作人员内部获得更新 onConnectionStateChange

package test;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothGatt;
import android.bluetooth.BluetoothGattCallback;
import android.bluetooth.BluetoothManager;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.le.ScanCallback;
import android.bluetooth.le.ScanFilter;
import android.bluetooth.le.ScanResult;
import android.bluetooth.le.ScanSettings;
import android.content.Context;
import android.os.Build;
import android.os.Handler;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.concurrent.futures.ResolvableFuture;
import androidx.work.ListenableWorker;
import androidx.work.WorkerParameters;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.ArrayList;
import java.util.List;

import static android.bluetooth.BluetoothDevice.TRANSPORT_LE;
import static android.os.Build.VERSION_CODES.M;

public class BluetoothScanWorker extends ListenableWorker  {

    private String TAG …
Run Code Online (Sandbox Code Playgroud)

android worker

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

Prometheus Alertmanager 与 docker 持久存储

由于某种原因,我无法让持久存储与警报管理器一起使用。这是我的作文:

  alertmanager:
    image: 'my/alertmanager/prod:latest'
    restart: always
    volumes:
      - alertmanager-data:/alertmanager-data
    command:
      - '--config.file=/alertmanager/alertmanager-config.yml'
      - '--storage.path=/alertmanager-data'
    ports:
      - 9103:9093

  volumes:
    alertmanager-data:
      external: true
Run Code Online (Sandbox Code Playgroud)

我已经创建了卷,一切似乎都正确初始化。但进入机器后/alertmanager-data似乎不包含任何数据库或文件。并且在警报管理器上创建新的沉默永远不会持续。

docker docker-compose prometheus-alertmanager

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

ORMLite 初始化外部集合

我的对象上有外国集合字段。如果我创建对象>保存它>查询它:那么我就拥有它并且可以使用它。但是,如果我创建对象并尝试立即访问外部集合字段,则它为空。我怎样才能初始化它?

java ormlite foreign-collection

4
推荐指数
1
解决办法
3686
查看次数

使用universal-image-loader取消加载图像

我在每个块中都有GridView和远程图像.当我尽可能快地滚动它时,它第一次滞后.之后,它已加载每个图像并顺利运行.如何取消屏幕上的块加载图像?

android universal-image-loader

3
推荐指数
1
解决办法
2717
查看次数

Android javax.annotation.processing包缺失.不能使用AbstractProcessor

由于某种原因, javax.annotation.processing包丢失了.我发现 这个stackoverflow帖子关于同样的问题,但它给出了断开的链接作为答案.尝试了谷歌建议的一些东西,但没有结果.

android annotations android-studio

3
推荐指数
1
解决办法
1562
查看次数

奇怪的PHP浮点行为

有奇怪的问题:

$testTotal = 0;
foreach($completeBankArray as $bank){
   var_dump($testTotal);
   echo  " + ";
   var_dump(floatval($bank["amount"]));
   echo " = ".(floatval($testTotal) + floatval($bank["amount"]))."</br>";
   $testTotal = floatval(floatval($testTotal) + floatval($bank["amount"]));
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

------------------//--------------------
float(282486.09) + float(15) = 282501.09
float(282501.09) + float(3.49) = 282504.58
float(282504.58) + float(22.98) = 282527.55999999
float(282527.55999999) + float(5.2) = 282532.76
float(282532.76) + float(39.98) = 282572.73999999
float(282572.73999999) + float(2.6) = 282575.33999999
float(282575.33999999) + float(2.99) = 282578.32999999 
------------------//----------------------- 
Run Code Online (Sandbox Code Playgroud)

这怎么可能,我在做什么呢?

php floating-point

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

在Android Studio中建立签名APK总是调试版本

正如标题所暗示的那样,每次我尝试从Android工作室"生成签名APK"进行调试构建时,我已经搜索并尝试过,没有运气.如何构建签名发布版本.

android release apk

0
推荐指数
1
解决办法
1271
查看次数