我已经设置了成绩脚本.当我执行Gradle构建时,一切正常,它运行jUnit测试.
之后,当我运行Gradle测试时,我得到以下内容:
C:\Users\..\..\Project>gradle test
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
Run Code Online (Sandbox Code Playgroud)
当我执行时gradle clean
,然后Gradle构建工作,当然......我希望能够只重置测试,而不是构建整个项目:我该怎么做?
我看到这个本机崩溃与以下堆栈跟踪.
这仅在Android 7.0和7.1中发生.该应用程序没有添加任何新内容,该应用程序已投入生产几年,但随着更多设备更新到Nougat,此崩溃现在经常发生并且正在变得令人讨厌.
任何意见,将不胜感激.
native: pc 000000000007a6c4 /system/lib64/libc.so (tgkill+8)
native: pc 0000000000077920 /system/lib64/libc.so (pthread_kill+64)
native: pc 000000000002538c /system/lib64/libc.so (raise+24)
native: pc 000000000001d24c /system/lib64/libc.so (abort+52)
native: pc 000000000001225c /system/lib64/libcutils.so (__android_log_assert+224)
native: pc 00000000000610e0 /system/lib64/libhwui.so
native: pc 000000000003908c /system/lib64/libhwui.so
native: pc 000000000003609c /system/lib64/libhwui.so
native: pc 000000000003b4fc /system/lib64/libhwui.so
native: pc 000000000003c520 /system/lib64/libhwui.so
native: pc 000000000003e694 /system/lib64/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+152)
native: pc 00000000000127f0 /system/lib64/libutils.so (_ZN7android6Thread11_threadLoopEPv+336)
native: pc 00000000000a50b0 /system/lib64/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+116)
native: pc 00000000000770f4 /system/lib64/libc.so (_ZL15__pthread_startPv+204)
native: pc 000000000001e7d0 /system/lib64/libc.so (__start_thread+16)
Run Code Online (Sandbox Code Playgroud)
更新7月18日:
仍然无法找到这个的根,所以我决定购买一个出现次数最多且价格合理的设备,结果是三星Galaxy J3 2017版本与Android 7.0.但不幸的是仍然无法重现崩溃. …
我在Android Studio中运行单元测试.我有一个Java类,使用以下代码加载本机库
static
{
System.loadLibrary("mylibrary");
}
Run Code Online (Sandbox Code Playgroud)
但是当我在我的src/test
目录中测试这个类时,我得到了
java.lang.UnsatisfiedLinkError: no mylibrary in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
Run Code Online (Sandbox Code Playgroud)
如何才能找到原生.so库的路径,src/main/libs
以便进行单元测试而不出错?
注:里面src/main/libs
的目录我有3个子目录:armeabi
,mips
和x86
.其中每一个都包含正确的.so文件.我正在使用非实验版本来构建NDK库.
我不想使用其他第三方测试库,因为我所有其他"纯"java类都可以进行单元测试.但如果那是不可能的,那么我愿意接受替代方案.
这是我的测试代码,它会抛出错误
@Test
public void testNativeClass() throws Exception
{
MyNativeJavaClass test = new MyNativeJavaClass("lalalal")
List<String> results = test.getResultsFromNativeMethodAndPutThemInArrayList();
assertEquals("There should be only three result", 3, results.size());
}
Run Code Online (Sandbox Code Playgroud) 我在进行“酿造清理”时遇到错误:
$ brew cleanup
Warning: Skipping opam: most recent version 2.0.3 not installed
Warning: Skipping python: most recent version 3.7.2_2 not installed
Warning: Skipping sqlite: most recent version 3.27.1 not installed
Error: Permission denied @ unlink_internal - /usr/local/lib/node_modules/@angular/cli/node_modules/.bin/in-install
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这一问题?
PS:brew link node
返回错误,尽管我不知道是否相关。
$ brew install node
Warning: node 11.9.0 is already installed, it's just not linked
You can use `brew link node` to link this version.
$ brew link node
Linking /usr/local/Cellar/node/11.9.0...
Error: Could not symlink include/node/common.gypi
Target …
Run Code Online (Sandbox Code Playgroud) 我必须构建一个使用sqlite的应用程序.现在我想写单元测试.这些单元测试应该测试我的课程SQLiteBridge
.SQLiteBridge
为每个子类Model提供DAO.
现在我遇到了一个问题,我需要一个上下文来创建我的SQLiteBridge
.SQLiteBridge
在系统上创建和处理SQLite数据库..
从哪里获取Context-Object?
我的设置就像在这里(所以我使用的是Junit4 [感谢上帝]):http: //tools.android.com/tech-docs/unit-testing-support
编辑:我希望有一种方式像旧AndroidTestCase
的扩展而不会失去Junit4.:)
我想创建一个drawable,它由一个map pin(bubble)和一些文本组成.气泡应该在背景中,文本在前景中.
这个drawable应该传递super(drawable)
给BalloonItemizedOverlay
扩展的类ItemizedOverlay<Item>
.
换句话说,我想在地图中显示的气泡中显示文字.
我正在使用Hello Mapview 教程
我想在build.gradle中指定jar名称和版本,所以我的build.gradle如下所示.
apply plugin: 'java'
version = "1.00.00"
dependencies {
compile files('../../lib/abc.jar')
}
jar{
manifest{
attributes ("Fw-Version" : "2.50.00", "${parent.manifestSectionName}")
}
archiveName 'abc.jar'
}
Run Code Online (Sandbox Code Playgroud)
所以,当我这样做
gradle clean build,我所期待的是生成的jar名称是abc-1.00.00.jar
但它没有发生,输出jar名称仅作为abc.jar,它只是忽略了版本.我想指定jar名称和版本,那么我该如何实现呢?
我有一个ListView,它显示数据库中的数据.
db = new DB(this);
db.open();
String[] from = new String[]{DB.COLUMN_FIRSTNAME, DB.COLUMN_LASTNAME};
int[] to = new int[]{android.R.id.text1, android.R.id.text2};
scAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_activated_2, null, from, to, 0);
lvData = (ListView) findViewById(R.id.lvData);
lvData.setAdapter(scAdapter);
lvData.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
lvData.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
Run Code Online (Sandbox Code Playgroud)
它将数据库中的名字和姓氏显示为项目列表: 单击以显示UI
所以,今天我尝试使用Espresso与这个应用程序,我找不到点击包含文本的项目的方法.
我用的时候:
onData(anything())
.inAdapterView(withId(R.id.lvData))
.atPosition(3)
.perform(click());
Run Code Online (Sandbox Code Playgroud)
它完美地运作.但我想点击包含相应项目文本的项目.
到目前为止我尝试了什么(我在stackoverflow,google,github等发现的所有内容):
onView(allOf(withText("Ivan Ivanov"))).perform(click())
onData(allOf(is(instanceOf(MainActivity.class)),is("Ivan Ivanov")))
.inAdapterView(withId(R.id.lvData))
.perform(click());
onData(hasToString(startsWith("v")))
.inAdapterView(withId(R.id.lvData))
.atPosition(0).perform(click());
onData(instanceOf(MainActivity.class))
.inAdapterView(withId(R.id.lvData))
.atPosition(0)
.check(matches(hasDescendant(withText("Ivan Ivanov"))));
onData(anything()).inAdapterView(withContentDescription("Ivan Ivanov"))
.atPosition(0).perform(click());
Run Code Online (Sandbox Code Playgroud)
因此,字符串"Ivan Ivanov"和项目之间可能存在差异,该项目包含来自数据库的数据:firstName
+ lastName
?
我希望能够使用 git 来克隆 github 上各种项目的问题。我知道我可以克隆代码和维基(如果存在)。我找不到克隆问题的方法。
作为一个工作示例,以下是我将如何克隆包含项目源代码的主存储库:
git clone https://github.com/kiwix/kiwix-android.git
这适用于该项目的 wiki 页面:
git clone https://github.com/kiwix/kiwix-android.wiki.git
我已经尝试了以下操作,看看它是否可以解决这些问题,但它没有
git clone https://github.com/kiwix/kiwix-android.issues.git
Cloning into 'kiwix-android.issues'...
remote: Repository not found.
fatal: repository 'https://github.com/kiwix/kiwix-android.issues.git/' not found
Run Code Online (Sandbox Code Playgroud)
能够克隆问题将是一个很大的帮助,特别是运行脚本来分析各种问题的问题集等。
对于gradle,从命令行执行特定测试应该从版本1.0(或1.1)开始工作,但它不适用于版本2.7.
我试过下面的命令:
gradle test --tests com.mk.myfirstapp.MyUT
Run Code Online (Sandbox Code Playgroud)
gradle输出'未知的cmdline optiions':
FAILURE: Build failed with an exception.
* What went wrong:
Problem configuring task :app:test from command line.
> Unknown command-line option '--tests'.
* Try:
Run gradle help --task :app:test to get task usage details. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 3.505 secs
Run Code Online (Sandbox Code Playgroud)
对于另一个命令也一样
gradle -Dtest.single=abc test
Run Code Online (Sandbox Code Playgroud)
有谁知道这是一个错误或我的滥用?谢谢.
更多细节
我和欧宝(下图)做了同样的事,但我有不同的结果.我的朋友有什么问题: - ?
mk@mk-desktop:~/StudioProjects/MyFirstApp$ gradle -v …