小编Rob*_*ins的帖子

Gradle + Robolectric:我在哪里放置文件org.robolectric.Config.properties?

我正在尝试使用Robolectric设置测试以单击此存储库中的菜单按钮.基本的Robolectric测试将运行,但我无法使用资源运行任何项目特定的测试,因为它说它无法找到我的AndroidManifest.xml.运行后../gradlew clean check,这是Robolectric html文件的标准输出:

WARNING: No manifest file found at ./AndroidManifest.xml.Falling back to the Android OS resources only. To remove this warning, annotate your test class with @Config(manifest=Config.NONE).

我发现这些说明表明我应该创建一个org.robolectric.Config.properties文件,但我不知道该把它放到哪里.我几乎到处都试过,尽管移动了文件,但错误信息中的路径始终与上面相同(./AndroidManifest.xml).这让我觉得构建过程从未获取文件中的设置org.robolectric.Config.properties.

我也尝试了@Config(manifest ="")指令,但这给了我一个cannot find symbol错误.如果我将AndroidManifest.xml移动到我的项目目录中,那么我得到一个错误,它无法找到路径./res/values,我也无法解决.有任何想法吗?

更新1

谢谢欧根,我现在用@RunWith(RobolectricGradleTestRunner.class)而不是@RunWith(RobolectricTestRunner).

现在我得到了一个不同的错误,仍然发生在我的BasicTest.java的同一行

KeywordList keywordList = Robolectric.buildActivity(KeywordList.class).create().get();
Run Code Online (Sandbox Code Playgroud)

以下是Robolectric测试报告中标准错误,标准输出和"失败测试"选项卡的结果:

注意:我也尝试用最新的Robolectric更新,robolectric-2.2-SNAPSHOT.jar构建的jar替换,但仍然出错.

标准错误

WARNING: no system properties value for ro.build.date.utc

标准输出

DEBUG: Loading resources for net.frontlinesms.android from ~/workspace-studio/frontlinesms-for-android/FrontlineSMS/build/res/all/debug...
DEBUG: Loading …
Run Code Online (Sandbox Code Playgroud)

testing android unit-testing gradle robolectric

21
推荐指数
2
解决办法
7252
查看次数

Android Studio w/gradle:包r不存在

最终编辑:

这是一个很长的问题,有几个编辑,我不一定在每一步都做正确的事情.对于那些偶然发现这个问题且在Android Studio中将项目转换为gradle时遇到问题的人,我建议查看问题#16718026中提到的这个存储库并尝试导入它并编译并运行它.一旦有了工作,就可以更容易地看到自己的项目可能出现的问题.

总而言之,这就是我使用Android Studio .2.5将非Gradle Android Studio项目转换为有效的Gradle项目,我自动安装了Gradle 1.6和Gradle Plugin .5.

(1)创建了一个带有图标和活动的新的空白Android Studio项目.注意:我一开始并没有意识到这一点,因为我同时学习Android和Gradle,但Android Studio(无论如何在这个版本中)实际上为您设置了多项目设置,这对我来说很困惑.多项目意味着层次结构中项目上方有另一个文件夹,为存储所有项目的设置提供了一个位置.AS也没有,尽管视频指南创建的子项目文件夹中的文件的build.gradle(在我的情况,FrontlineSMS),说明会.所以我必须创建该子项目build.gradle文件,并创建一个非常简单的settings.gradle(参见下面的更新2).

(2)将src /,res /,.git /,lib /,.gitignore和AndroidManifest.xml复制到新项目的根目录.

(3)用于git mv根据Gradle Plugin用户指南中的约定将这些项目移动到适当的位置,在必要时替换或删除空白项目中的一些现有文件或文件夹.

(4)build.gradle在我的子项目文件夹中创建了一个并给它一些基本设置(见下面或上面链接的问题)

(5)按照更新4中的描述导入项目

原始问题:

我是一个新手Android开发人员,试图将当前不使用Gradle(并编译并运行得很好)的Android Studio项目转换为在OS X上使用Gradle的Android项目.我遇到资源错误,我认为可能与我的项目结构,IDE中的设置,build.gradle文件中的设置或它们的某些组合有关.

我进行转换的方式是首先在Android Studio中创建一个新项目,将文件复制到适当的位置,然后在IDE和build.gradle文件中添加一些设置.我的结果是,

??? frontlinesms-for-android
     ??? build.gradle
     ??? gradle
     ??? gradlew
     ??? gradle.bat
     ??? settings.gradle (added in update 2)
     ??? local.properties
     ??? lib
        ??? lib1.jar
        ??? lib2.jar
        ??? ...
     ??? frontlinesms-for-android.iml
     ??? FrontlineSMS
        ??? build.gradle
        ??? src
           ??? main …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-studio

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

在 Pandas 中,如何按键中的每 N 行进行分组,保存一列的最后一个值并根据该“集合”中的所有行计算另一列?

我的数据结构如下,包含时间、类别、活动指示器和数值。

输入

i  time       cat.  active  item_count
0  00:00:00   X     TRUE    2
1  00:00:06   X     FALSE   4
2  00:00:08   X     TRUE    13
3  00:00:25   Y     FALSE   11
4  00:01:10   Y     TRUE    2
5  00:01:58   Y     TRUE    6
6  00:02:53   Y     TRUE    2
7  07:40:29   X     FALSE   1
8  08:34:52   X     FALSE   2
9  11:50:48   X     TRUE    5
10 11:55:42   X     TRUE    3
Run Code Online (Sandbox Code Playgroud)

我想计算类别中每 2 行的活动项目的比率,并复制每个 2 行集中最后一行的时间以获得以下输出:

输出

time     cat.  rate
00:00:06 X     0.33 (2/(2+4))
07:40:29 X     13/14
00:01:10 Y …
Run Code Online (Sandbox Code Playgroud)

python pandas

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