小编xrd*_*xrd的帖子

多个dex文件定义了Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat

如果我从命令行运行gradle assembleDebug,我突然收到此错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
    at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
    at com.android.dx.command.dexer.Main.run(Main.java:232)
    at com.android.dx.command.dexer.Main.main(Main.java:174)
    at com.android.dx.command.Main.main(Main.java:91)
Run Code Online (Sandbox Code Playgroud)

如果我grep for v4,我会在build文件夹中看到两个文件.

Binary file build/pre-dexed/debug/support-v4-19.0.0-2ba5fdd60a6c3836b3104a863fe42897da1fa9d1.jar matches
Binary file build/pre-dexed/debug/support-v4-r7-227d905d79b23b20866531d4f700446c040a2ccb.jar matches
Run Code Online (Sandbox Code Playgroud)

我的gradle文件仅包含此支持库:

compile 'com.android.support:support-v13:19.0.0'
Run Code Online (Sandbox Code Playgroud)

关于如何以某种方式包含r7库,我很难过.我跑了gradle clean,当我重新运行assembleDebug时它总是出现在那里.

如果我在构建目录中grep r7,我在文件中看到它:

Binary file build/exploded-bundles/ComGoogleAndroidGmsPlayServices4030.aar/classes.jar matches
Run Code Online (Sandbox Code Playgroud)

如果我不包含v13,那么其他东西不会编译.

但v13是否包含v4支持库?

这是Play服务AAR包和v13库之间的不兼容吗?

我从gradleplease.appspot.com抓起了gradle文件.

删除播放服务并不能解决问题; 同样的错误.

我在build.gradle中的依赖项:

 dependencies {


 // Google Play Services
//compile 'com.google.android.gms:play-services:4.0.30'

// Support Libraries
//compile 'com.android.support:support-v4:19.0.0'
///compile 'com.android.support:appcompat-v7:19.0.0'
//compile 'com.android.support:gridlayout-v7:19.0.0'
compile …
Run Code Online (Sandbox Code Playgroud)

android gradle android-support-library android-gradle-plugin

210
推荐指数
10
解决办法
16万
查看次数

如何使用gradle构建文件从Android上的org.apache正确导入HttpClient?

当我尝试运行"gradle build"时,我看到了这个错误

WARNING: Dependency org.apache.httpcomponents:httpclient:4.2.3 is ignored for the default configuration as it may be conflicting with the internal version provided by Android.
         In case of problem, please repackage with jarjar to change the class packages
:prepareFreeDebugDependencies
:compileFreeDebugAidl UP-TO-DATE
:generateFreeDebugBuildConfig UP-TO-DATE
:mergeFreeDebugAssets UP-TO-DATE
:compileFreeDebugRenderscript UP-TO-DATE
:mergeFreeDebugResources UP-TO-DATE
:processFreeDebugManifest UP-TO-DATE
:processFreeDebugResources UP-TO-DATE
:compileFreeDebug
/home/xrdawson/Projects/Foo/Bar/src/main/java/com/Foo/app/PixActivity.java:20: error: package org.apache.http.entity.mime does not exist
import org.apache.http.entity.mime.HttpMultipartMode;
                              ^
Run Code Online (Sandbox Code Playgroud)

build.gradle的结尾如下所示:

    repositories {
        mavenCentral()
    }

    dependencies { 
        compile fileTree(dir: 'libs', include: '*.jar')
        compile "org.eclipse.mylyn.github:org.eclipse.egit.github.core:2.1.3"
        compile "com.madgag:markdownj-core:0.4.1"
//      compile …
Run Code Online (Sandbox Code Playgroud)

android gradle apache-httpclient-4.x

38
推荐指数
3
解决办法
7万
查看次数

使用量角器测试非AngularJS页面上的登录

我有一个AngularJS应用程序,它使用GitHub上的oAuth SSO进行身份验证.我试图找出一种使用量角器和自动化登录测试的方法.我无法弄清楚如何检索非角度字段以及如何管理等待页面加载browser.driver,我的规范如下所示:

// Create a repository                                                                                                                     
describe('login', function() {

  it('should login', function() {
      // this issues a redirect to GitHub
      browser.driver.get( process.env.HOST + '/auth/github' ) 
      browser.sleep( 4000 ); // Sleep to make sure page loads fully..                                                                      
      // browser.debugger(); // tried to use debugger...                                                                                   
      var login = element( by.id( "login_field" ) );
      login.sendKeys( process.env.USERNAME );
      var password = element( by.id( "password" ) );
      password.sendKeys( process.env.PASSWORD )
  });                                                                                                                                      
});
Run Code Online (Sandbox Code Playgroud)

我像这样运行命令:

HOST=http://someserver.com.dev USERNAME=foobar PASSWORD=barfoo protractor config/protractor.conf 
Run Code Online (Sandbox Code Playgroud)

如何正确加载身份验证页面,在字段中输入正确的信息,然后等待重定向回我的Angularized应用程序(我可以从那里处理事情).

我试图使用调试器跳转到这段代码,但对我来说这并不直观.当调试器被阻止时,我似乎不在我的代码中,而是在cli.js中.如果我点击"c",那么我的脚本一直继续执行并失败而不会进一步阻塞.我误解了在我的脚本中使用调试器命令的位置吗?而且,我希望使用Chrome检查员, window.clientSideScripts.findInputs但也在那里被挫败; 这些似乎是针对AngularJS元素,而不是非角化的元素.

javascript angularjs protractor

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

对于dart 2,断言语句不再有用吗?

我正在阅读飞镖语言之旅并在Assert下看到这个声明:

注意:断言语句仅在选中模式下有效.它们对生产模式没有影响.

随后是这个声明:

Dart 2注意:已检查模式不在Dart 2中.有关详细信息,请参阅Dart 2更新.

将两者结合起来:既然断言只能在检查模式下工作,并且在Dart 2中没有检查模式,那么一旦Dart 2落地,断言是完全无效的吗?

整个语言教程都有断言,还有其他东西取代它们吗?

或者,您是否可以在非强模式下运行但仍以某种方式获得断言的好处?

dart

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

设置通过Firebase身份验证和存储上传文件的限制(中间没有服务器)?

我正在学习有关Web应用程序中Firebase身份验证和存储的信息。我的想法是要求用户通过Firebase登录,然后上传图片。

我可以从Firebase身份验证和存储中看到这一点。但是,我想限制它们可以上传的文件数和文件大小。

是否可以在Firebase控制台(或其他位置)中控制上传?看完JavaScript示例之后,我了解了如何放入文件,并且可以想象编写代码来查询Firebase以获取用户的上传数量,然后限制客户端,但是,这当然是一种完全不安全的方法。

如果我将其作为单个页面应用程序托管在GitHub页面上,那么我想知道是否可以在不涉及服务器的情况下设置这些限制。或者,我是否需要通过服务器代理我的上传,以确保我绝不允许用户上传超出我期望的上传数量?

javascript firebase firebase-security firebase-authentication firebase-storage

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

如何从客户端React应用程序使用Firebase存储?

我正在尝试从我的React应用程序中将文件写入云存储。我使用create-react-app工具创建了一个新的React应用。我相信我已经按照正确的说明获取了存储参考,并带有以下代码:this.storage = firebase.storage();。但是,无论我如何配置firebase和导入什么,我都会看到此错误:TypeError: _this.firebase.storage() is not a function.

我尝试导入@firebase/storage(在此处注释),但是这会导致错误,并且该模块的NPM页面表明这不是用户应该直接加载的内容。

我相信我添加了适当的firebase库。我可以使用firestore和旧版数据库(我删除了代码来做到这一点,但是如果使用,它就可以工作this.firestore = this.firebase.firestore();)。但是,存储尚未解决。

对于是否应该使用客户端库进行云存储,我还不清楚(我相信这与Firebase的“存储”完全一样)。但是,所有示例似乎都是用于从NodeJS应用访问存储的,而我想从浏览器上下文中将文件编写为客户端JavaScript。

我的package.json看起来像这样:

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@firebase/app": "^0.3.2",
    "@firebase/auth": "^0.5.2",
    "@firebase/firestore": "^0.5.6",
    "@material-ui/core": "^1.3.1",
    "@material-ui/icons": "^1.1.0",
    "enzyme": "^3.3.0",
    "enzyme-adapter-react-16": "^1.1.1",
    "react": "^16.4.1",
    "react-dom": "^16.4.1"
  },
  "scripts": {
    "start": "PORT=3009 react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的index.js样子是这样的:

import React, { Component } from 'react'
import ReactDOM …
Run Code Online (Sandbox Code Playgroud)

javascript google-cloud-storage firebase reactjs create-react-app

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

如何写入具有从Firestore触发的Firebase云功能的云存储桶?

为了确保它尽可能干净和隔离,我创建了一个新的测试项目,除了这些步骤之外,其中没有任何其他内容。

然后,我在控制台中启用了Cloud Firestore。我创建了一个名为“ blarg”的新集合(名字叫eh!)。我向其中添加了一个文档,并使用了自动编号,然后添加了一个带有字符串dumpty的名为“ humpty”的字段。在控制台中看起来像这样:

在此处输入图片说明

我在signaturesFirebase控制台的storage部分中创建了一个目录。当我的函数(下面)触发时,我想将文件写入此目录。

然后,我使用以下代码添加了云功能。它显示了(我假设)正确的功能部分,名称testItOut和触发事件document.update/blarg/{eventId}

const functions = require('firebase-functions');
const os = require('os');
const fs = require('fs');
const path = require('path');
require('firebase-admin').initializeApp();

exports.testItOut = functions.firestore
    .document('blarg/{docId}')
    .onUpdate((change, context) => {
    console.log( "Inside #testItOut" );
    const projectId = 'testing-60477';
    const Storage = require('@google-cloud/storage');
    const storage = new Storage({
        projectId,
    });
    let bucketName = 'signatures'; 
    let fileName = 'temp.txt';
    const tempFilePath = path.join(os.tmpdir(), fileName);
    console.log( `Writing out to ${tempFilePath}` );
    fs.writeFileSync(tempFilePath, "something!" …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage firebase google-cloud-functions google-cloud-firestore

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