相关疑难解决方法(0)

将stdout重定向到Android NDK中的logcat

我无法让我的Nexus S(运行Android 4.0)将本地stdout消息重定向到logcat.我读过我需要这样做:

$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.(它确实打破了JUnit,如这里所提到的,所以它并非没有效果.)

作为参考,这是我的代码:

package com.mayastudios;

import android.util.Log;

public class JniTester {

  public static void test() {
    Log.e("---------", "Start of test");
    System.err.println("This message comes from Java.");    
    void printCMessage();
    Log.e("---------", "End of test");
  }

  private static native int printCMessage();

  static {
    System.loadLibrary("jni_test");
  }
}
Run Code Online (Sandbox Code Playgroud)

和JNI .c文件:

JNIEXPORT void JNICALL
Java_com_mayastudios_JniTester_printCMessage(JNIEnv *env, jclass cls) {
  setvbuf(stdout, NULL, _IONBF, 0);
  printf("This message comes from C (JNI).\n"); …
Run Code Online (Sandbox Code Playgroud)

android android-ndk

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

使用NDK捕获stdout/stderr

我正在移植一些现有的C代码以在Android上运行.此C代码将大量输出写入stdout/stderr.我需要在内存缓冲区或文件中捕获此输出,以便我可以通过电子邮件或其他方式共享它.

如何在不修改现有C代码的情况下实现这一目标?

注意:这个问题不是关于将输出重定向到adb或logcat; 我需要在设备上本地缓冲输出.我知道以下问题,但似乎没有解决我的问题:

c android stdout stdio android-ndk

15
推荐指数
2
解决办法
6999
查看次数

Android本机代码调试

如何在eclipse中的android应用程序开发中的log-cat上获取本机c ++程序的cout输出.

请有人帮我.

android android-ndk

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

如何从 root 设备中的 shell 脚本将 stdout 重定向到 logcat?

我在有根的 Android 设备中运行 shell 脚本,我试图通过跟踪 shell 脚本生成的 stdout 输出(通过命令或回显)来调试它。是否可以通过将 stdout 重定向到 logcat 来做到这一点?

shell android stdout logcat

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

如果制造商删除了/ dev/log文件夹下的文件夹该怎么办?[表示没有LogCat]

我的android设备出现问题,其中/ dev下的日志文件夹无法访问,甚至可能不存在.

$ pwd
pwd
/dev
$ cd log
cd log
cd: can't cd to log
$
Run Code Online (Sandbox Code Playgroud)

因此LogCat无法使用,我无法在DDMS中查看设备的stdout或stderr日志.

我google了一下,试图找到有关此问题的一些信息:

  1. http://developer.android.com/guide/developing/tools/adb.html#alternativebuffers

    查看stdout和stderr主题似乎很有用,但是这个帖子说它不受支持:

    为什么在android上重定向stdout/stderr不起作用?

  2. 这是另一个有同样问题的人:

    "无法打开日志设备'/ dev/log/main':没有这样的文件或目录"

我找到了一个临时解决方案,可以手动将我的日志转储到设备上的文件中,但像​​往常一样,我不能只监视系统的应用程序日志.

有什么解决方案可以建议吗?有什么方法可以将stdout和stderr日志重定向到文件,控制台等?

任何形式的帮助将不胜感激.

android logcat android-logcat

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

标签 统计

android ×5

android-ndk ×3

logcat ×2

stdout ×2

android-logcat ×1

c ×1

shell ×1

stdio ×1