我在Android中的媒体后端(主要是Stagefrightplayer)遇到了一些麻烦,我想了解它为什么会抛出错误.错误通常是设备特定的,因此在仿真器上进行调试是不够的.
例:
I/AwesomePlayer( 147): mConnectingDataSource->connect() returned -1004
V/MediaPlayerService( 147): [332] notify (0x272830, 100, 1, -1004)
E/MediaPlayer(24881): error (1, -1004)
E/MediaPlayer(24881): Error (1,-1004)
W/PlayerListener(24881): Received error: what = 1, extra = -1004
Run Code Online (Sandbox Code Playgroud)
例2:
E/MediaPlayer( 941): error (1, -2147483648)
Run Code Online (Sandbox Code Playgroud)
我也让玩家完全开玩笑并吐出了痕迹.txt.
有没有办法调试正在发生的事情,就像我调试Java代码一样?谢谢.
我没有完成file.encoding和ant.如何在ant中为junit测试设置file.encoding?该JUnit的蚂蚁任务不支持的编码,如属性的javac任务一样.
我试过运行«ant -Dfile.encoding = UTF-8»和«ANT_OPTS =" - Dfile.encoding = UTF-8"ant»但没有成功.测试中的System.getProperty("file.encoding")仍返回MacRoman.
我想通过将文本转储到文件来调试我的应用程序中的一些东西,如下所示:
FILE *file;
file = fopen("/tmp/file.txt","a+");
fprintf(file,"%s\n", "silly debug message");
fclose(file);
Run Code Online (Sandbox Code Playgroud)
当我将文件作为./myapplication运行时,这是有效的.但是,当我将其捆绑为应用程序包(使用gtk-osx-application和gtk-mac-bundler)并运行应用程序包时,不会创建该文件.它无声地失败并继续执行.
有什么想法吗?是否有沙盒正在进行?
我正在尝试创建一个 LocalDate 对象:
LocalDate date = LocalDate.parse(
"1. juli 2014",
DateTimeFormatter.ofPattern("d. LLLL YYYY", new Locale("nb", "NO"));
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外:
java.time.format.DateTimeParseException: Text '1. juli 2014' could not be parsed:
Unable to obtain LocalDate from TemporalAccessor:
{WeekBasedYear[WeekFields[MONDAY,4]]=2014, MonthOfYear=7, DayOfMonth=1},
ISO of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1919)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1854)
at java.time.LocalDate.parse(LocalDate.java:400)
Run Code Online (Sandbox Code Playgroud)
该异常似乎表明那里有正确的数据(“juli”是挪威语,是第 7 个月)。
我正在尝试 JDK9 (9-ea+143),并且需要设置--add-modules java.xml.bind. 我努力了:
GRADLE_OPTS="--add-modules java.xml.bind \'-Dorg.gradle.jvmargs=--add-modules java.xml.bind\'"org.gradle.jvmargs=--add-modules java.xml.bind。test { jvmArgs \'--add-modules java.xml.bind\' }到 build.gradletasks.withType(Test) { jvmArgs \'--add-modules java.xml.bind\' }到 build.gradletasks.withType(JavaExec) { jvmArgs \'--add-modules java.xml.bind\' }到 build.gradle测试仍然失败。我缺少什么?
\n\n我在https://github.com/henrik242/gradle-jdk9-test-problem中有一个示例项目
\n\n\xe2\x9c\xa8 ./gradlew build\n:compileJava\n/foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:1: error: package javax.xml.bind does not exist\nimport javax.xml.bind.ValidationException;\n ^\n/foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:5: error: cannot find symbol\n public void doStuff() throws ValidationException {\n ^\n symbol: class …Run Code Online (Sandbox Code Playgroud) 我需要第三方应用程序("Foo")从我的应用程序("Bar")获取信息,但到目前为止我的解决方案似乎很麻烦:
有没有更直接的方法来做到这一点?
编辑:我用一个非常简单的ContentProvider解决了它,如Guido建议:
public class MyProvider extends ContentProvider {
private String state = "";
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
MatrixCursor cursor = new MatrixCursor(new String[]{"state"});
cursor.addRow(new Object[]{state});
return cursor;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
state = (String) values.get("state");
return 1;
}
@Override
public boolean onCreate() {
return true;
}
@Override
public String getType(Uri uri) {
return null; …Run Code Online (Sandbox Code Playgroud) 我有一个扩展功能,可以过滤掉具有空键或空值的条目:
fun <K, V> Map<K?, V?>.filterNotNull(): Map<K, V> = this.mapNotNull {
it.key?.let { key ->
it.value?.let { value ->
key to value
}
}
}.toMap()
Run Code Online (Sandbox Code Playgroud)
这适用于具有可空键和值的地图:
data class Stuff(val foo: Int)
val nullMap = mapOf<String?, Stuff?>(null to (Stuff(1)), "b" to null, "c" to Stuff(3))
assert(nullMap.filterNotNull().map { it.value.foo } == listOf(3))
Run Code Online (Sandbox Code Playgroud)
但不能包含非空键或值的值:
val nullValues = mapOf<String, Stuff?>("a" to null, "b" to Stuff(3))
assert(nullValues.filterNotNull().map { it.value.foo } == listOf(3))
Type mismatch: inferred type is Map<String, Stuff?> but Map<String?, Stuff?> was expected
Type …Run Code Online (Sandbox Code Playgroud) 我正在创建一个非常简单的文件搜索,其中搜索数据库是一个文本文件,每行一个文件名。数据库是使用 PHP 构建的,并通过 grep 文件(也使用 PHP)找到匹配项。
\n\n这在 Linux 中效果很好,但在使用非 ascii 字符时则不适用于 Mac。看起来 HFS+ (MacOSX) 上的名称编码与 ext3 (Linux) 上的名称编码不同。这是一个 test.php:
\n\n<?php\n$mystring = "abc\xc3\xb3\xc3\xbc\xc3\x9adef\xc3\xa5";\nfile_put_contents($mystring, "");\n$h = dir(\'.\');\n$h->read(); // "."\n$h->read(); // ".."\n$filename = $h->read();\n\nprint "string: $mystring and filename: $filename are ";\n\nif ($mystring == $filename) print "equal\\n";\nelse print "different\\n";\nRun Code Online (Sandbox Code Playgroud)\n\n运行 MacOSX 时:
\n\n$ php test.php\nstring: abc\xc3\xb3\xc3\xbc\xc3\x9adef\xc3\xa5 and filename: abc\xc3\xb3\xc3\xbc\xc3\x9adef\xc3\xa5 are different\n$ php test.php |cat -evt\nstring: abc\xc3\xb3\xc3\xbc?M-^Zdef\xc3\xa5$ and filename: abco?M-^Au?M-^HU?M-^Adefa?M-^J are different$\nRun Code Online (Sandbox Code Playgroud)\n\n在 Linux 上运行时(或在 MacOSX 上安装 nfs …