小编J. *_* K.的帖子

FileProvider崩溃 - 尝试在空字符串上调用XmlResourceParser

这是我的清单的一部分:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.asd"
    android:versionCode="118"
    android:versionName="118" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />


    <application
        android:name="com.example.asd.AsdApplication"
        android:allowBackup="true"
        android:allowTaskReparenting="true"
        android:theme="@style/AsdTheme" >
        ...

        <provider
            android:name="com.example.asd.database.hq.ContentProviderDB"
            android:authorities="ourContentProviderAuthorities" >
        </provider>
        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.example.asd.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/filepaths" />
        </provider>

       ...
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

这是raw/xml/filepaths.xml中的filepaths文件

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="media"/>
</paths>
Run Code Online (Sandbox Code Playgroud)

我从互联网下载视频并以这种方式将其保存到内部存储:

public static boolean saveInputStreamToInternalStorageFile(Context context, String filename, byte[] dataToWrite, Context ctx) {
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(context.getFilesDir() + File.separator + filename);

        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(dataToWrite);
        oos.close(); …
Run Code Online (Sandbox Code Playgroud)

android

131
推荐指数
4
解决办法
8万
查看次数

在最后一个EditText上敲击键盘上的Done后隐式"提交"

我已经使用了一些应用程序,当我填写用户名,然后转到我的密码,如果我在键盘上点击"完成",登录表单会自动提交,而不必单击提交按钮.这是怎么做到的?

android

91
推荐指数
4
解决办法
5万
查看次数

如何在Android Studio中添加apache commons集合(Gradle)

我试图使用ListUtils,但当我运行应用程序时,我收到此错误:

 Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.collections.ListUtils" on path: DexPathList[[zip file "/data/app/com.meridianaspect.wiw-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
Run Code Online (Sandbox Code Playgroud)

所以我想我必须以某种方式通过gradle导入该库,但我不知道该怎么做?

android gradle

89
推荐指数
2
解决办法
8万
查看次数

Xlib:显示":21"时缺少扩展名"RANDR". - 尝试运行无头谷歌Chrome

我试图通过xvfb使用Chrome在无头服务器上运行一些Webdriver Maven测试(Firefox也没有用)但是我收到此错误消息:

Xlib:  extension "RANDR" missing on display ":21".
Run Code Online (Sandbox Code Playgroud)

我应该提供更多信息以及问题/解决方案可以提供什么?

google-chrome xvfb

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

如何让Jenkins在部署时自动运行Selenium WebDriver/TestNG/Java测试以及Maven如何处理所有这些?

我现在已经研究了好几个小时,但我只发现了大局.他们在任何地方都假设读者已经建立了系统的一部分.

我认为将整个事物放在一起所需的部件的大图描述将是有用的.

他们都说"使用你的maven selenium测试"等等.

编辑:经过一些研究,我发现我需要在Jenkins和我的计算机上安装Maven,为Eclipse安装maven插件,并创建/转换我的项目作为Maven项目.如何在Jenkins中转移我的Maven项目?我是否导出到.jar,还是在服务器上移动整个文件夹?如何将整个事物与xvfb连接在一起?

所以这就是我目前所知道的

  1. 安装Jenkins(我们已在服务器上安装了)
  2. 为Jenkins安装插件(哪些?)
  3. 安装xvfb,以便在无头浏览器中运行测试(如何在Java编写的测试中指定?)
  4. 在计算机,jenkins和eclipse上安装Maven,使用maven项目.
  5. 我应该在eclipse工作区的哪个部分项目文件夹上传服务器以及在哪里?我有一个testng.xml文件和一些类(这是真正的测试)
  6. 如何告诉Jenkins在部署后自动运行Selenium Webdriver测试,我指向哪个文件?
  7. 如何获取报告 - 通过TestNg或通过一些Jenkins功能?

testng selenium webdriver maven jenkins

34
推荐指数
2
解决办法
5万
查看次数

Eclipse项目范围错误:警告:未设置环境变量HOME.以下目录将用于存储Git

启动Eclipse并得到此错误.我如何解决它?

Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Documents and Settings\Wizard'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page. …
Run Code Online (Sandbox Code Playgroud)

eclipse git egit

21
推荐指数
3
解决办法
8万
查看次数

在我的测试中我需要Robolectric和Mockito,每个人都提出自己的TestRunner

在我的测试中我需要Robolectric和Mockito,每个人都提出自己的TestRunner,我该怎么办?

我有这个代码:

@RunWith(MockitoJUnitRunner.class)
@EBean
public class LoginPresenterTest {

    @Bean
    LoginPresenter loginPresenter;

    @Mock
    private LoginView loginView;

    @AfterInject
    void initLoginPresenter() {
        loginPresenter.setLoginView(loginView);
    }

    @Test
    public void whenUserNameIsEmptyShowErrorOnLoginClicked() throws Exception {
        when(loginView.getUserName()).thenReturn("");
        when(loginView.getPassword()).thenReturn("asdasd");
        loginPresenter.onLoginClicked();
        verify(loginView).setEmailFieldErrorMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是AndroidAnnotations没有注入依赖项,我在尝试使用时获得了NPELoginPresenter

有人告诉我使用LoginPresenter_构造函数,以便我可以通过这种方式强制注入依赖项:

LoginPresenter loginPresenter = LoginPresenter_.getInstance_(context);
Run Code Online (Sandbox Code Playgroud)

为了获得对上下文的访问,我不得不从单元测试切换到Android Instrumentation测试,getInstrumentation().getTargetContext() 但我想要单元测试,而不是仪器测试.

所以另一个人告诉我使用Robolectric它 - 它应该能够为我提供应用程序上下文.

但是,当我查看入门页面时Robolectric,它说

@RunWith(RobolectricGradleTestRunner.class)
Run Code Online (Sandbox Code Playgroud)

这将与我目前@RunWith对Mockito的注释冲突,所以我该怎么办?

android unit-testing mockito robolectric

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

带有Java的Selenium Webdriver:在缓存中找不到元素 - 也许页面在查找后已经发生了变化

我正在我的课程开头初始化一个变量:

public WebElement logout;
Run Code Online (Sandbox Code Playgroud)

稍后在代码中,在某些方法中,第一次遇到注销按钮时,我为该变量赋值(在if/else语句的括号中):

logout = driver.findElement(By.linkText("Logout"));
logout.click();
Run Code Online (Sandbox Code Playgroud)

然后,在我的测试的另一个阶段,我成功地再次使用"logout":

logout.click();
Run Code Online (Sandbox Code Playgroud)

在测试结束时,在元素相同的地方(By.linkText("Logout")),我收到此错误:

Element not found in the cache - perhaps the page has changed since it was looked up
Run Code Online (Sandbox Code Playgroud)

为什么?

编辑:实际上,我没有成功使用logout.click(); 在我测试的另一个阶段.看起来我不能再使用它了.我必须创建一个logout1 webelement并使用它...

java selenium webdriver

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

我必须在Android Manifest中指定父活动名称吗?

我有一项活动开始另一项活动.
我是否必须在Android Manifest中指定父活动?我问这个因为可能还有其他活动会启动这个,所以我应该指定所有这些活动吗?

android:parentActivityName="com.example.myfirstapp.MainActivity" 
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-activity android-navigation

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

如何为Executors.newScheduledThreadPool(5)设置RemoveOnCancelPolicy

我有这个:

ScheduledExecutorService scheduledThreadPool = Executors
        .newScheduledThreadPool(5);
Run Code Online (Sandbox Code Playgroud)

然后我开始这样的任务:

scheduledThreadPool.scheduleAtFixedRate(runnable, 0, seconds, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

我以这种方式保留对Future的引用:

ScheduledFuture<?> scheduledFuture = scheduledThreadPool.scheduleAtFixedRate(runnable, 0, seconds, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

我希望能够取消并删除未来

scheduledFuture.cancel(true);
Run Code Online (Sandbox Code Playgroud)

然而,这个SO答案指出,取消不会删除它,并且添加新任务将在许多无法进行GC的任务中结束.

/sf/answers/1009650491/

他们提到了一些事情setRemoveOnCancelPolicy,但是这scheduledThreadPool没有这种方法.我该怎么办?

java concurrency multithreading

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