Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android添加java.lang.management API_Java_Android_Eclipse - Fatal编程技术网

android添加java.lang.management API

android添加java.lang.management API,java,android,eclipse,Java,Android,Eclipse,现在我对Android不支持的库有一个问题。事实上,它不支持这个API:“java.lang.management”。 Eclipse向我显示了以下错误: 10-25 17:53:03.460:java.lang.NoClassDefFoundError:java.lang.management.ManagementFactory。 我想知道如何添加此API以支持我的android应用程序 请提供任何帮助。该API不是Android的一部分,并且与Android不兼容 java.lang.man

现在我对Android不支持的库有一个问题。事实上,它不支持这个API:“java.lang.management”。 Eclipse向我显示了以下错误:

10-25 17:53:03.460:java.lang.NoClassDefFoundError:java.lang.management.ManagementFactory。

我想知道如何添加此API以支持我的android应用程序


请提供任何帮助。

该API不是Android的一部分,并且与Android不兼容


java.lang.management
API用于管理和监视java虚拟机。安卓的Dalvik虚拟机不是Java虚拟机。

安卓版本23的情况似乎略有改善。例如,我找到了一个替代品:

GarbageCollectorMXBean gb = ....
long gctime = gb.getCollectionTime();
感谢@Jacob,我现在正在使用这个代码。首先,
getRuntimeStat()
方法在所有android版本中都不可用。所以我先做一些反思:

static {
  try {
      Class<?> debugClass = Debug.class;
      getRuntimeStat = debugClass.getDeclaredMethod(
           "getRuntimeStat", String.class);
  } catch (NoSuchMethodException x) {
      getRuntimeStat = null;
  }
}

如果非空,则可以将
gctimestr
转换为长值。另一方面,如果它为空,则无法通过此API获得统计信息。

好的,但我们不能这样做:?当然可以尝试重新打包,但我认为您不会在大多数管理软件包中获得太多成功。管理API期待一个完全不同的VM,因此无法保证任何功能。
String gctimestr;
try {
    gctimestr = (String) (getRuntimeStat != null ? 
         getRuntimeStat.invoke(null, "art.gc.gc-time") : null);
} catch (IllegalAccessException e) {
    gctimestr = null;
} catch (InvocationTargetException e) {
    gctimestr = null;
}