小编neu*_*242的帖子

如何在真实设备上调试Android本机代码

我在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代码一样?谢谢.

c++ debugging android android-source android-music-player

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

如何在ant中为junit测试设置file.encoding?

我没有完成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.

java ant junit file-encodings

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

在C中,如何从MacOSX应用程序包中写入文件

我想通过将文本转储到文件来调试我的应用程序中的一些东西,如下所示:

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-applicationgtk-mac-bundler)并运行应用程序包时,不会创建该文件.它无声地失败并继续执行.

有什么想法吗?是否有沙盒正在进行?

c macos file-io core-foundation

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

如何使用“d.LLLL YYYY”模式从日期字符串创建 java.time.LocalDate?

我正在尝试创建一个 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 个月)。

java parsing date java-8

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

Gradle 不支持 JDK9 中的 --add-modules jvm 参数

我正在尝试 JDK9 (9-ea+143),并且需要设置--add-modules java.xml.bind. 我努力了:

\n\n
    \n
  • 环境GRADLE_OPTS="--add-modules java.xml.bind \'-Dorg.gradle.jvmargs=--add-modules java.xml.bind\'"
  • \n
  • 环境org.gradle.jvmargs=--add-modules java.xml.bind
  • \n
  • 添加test { jvmArgs \'--add-modules java.xml.bind\' }到 build.gradle
  • \n
  • 添加tasks.withType(Test) { jvmArgs \'--add-modules java.xml.bind\' }到 build.gradle
  • \n
  • 添加tasks.withType(JavaExec) { jvmArgs \'--add-modules java.xml.bind\' }到 build.gradle
  • \n
\n\n

测试仍然失败。我缺少什么?

\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)

java jvm jvm-arguments gradle java-9

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

如何向其他Android应用程序索取信息?

我需要第三方应用程序("Foo")从我的应用程序("Bar")获取信息,但到目前为止我的解决方案似乎很麻烦:

  • 应用程序Foo需要来自Bar的信息并发送广播("bar.POLL").
  • 应用程序栏监听此广播,并回复另一个广播("bar.PUSH");
  • Foo侦听bar.PUSH并读取包含的Bundle的内容.

有没有更直接的方法来做到这一点?

编辑:我用一个非常简单的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)

android rpc broadcastreceiver android-intent

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

从Kotlin的地图中过滤空键和值

我有一个扩展功能,可以过滤掉具有空键或空值的条目:

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)

generics kotlin extension-function

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

在 PHP 中,如何处理 HFS+ 与其他地方编码文件名的差异?

我正在创建一个非常简单的文件搜索,其中搜索数据库是一个文本文件,每行一个文件名。数据库是使用 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";\n
Run 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$\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 Linux 上运行时(或在 MacOSX 上安装 nfs …

php unicode macos utf-8 unicode-normalization

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