【问题标题】:Use javap to get method signatures in for Android Activity使用 javap 获取 Android Activity 的方法签名
【发布时间】:2013-05-29 17:21:29
【问题描述】:

当我在命令行javap -s java.awt.Label 中写入时,我成功获得了Label 的签名。现在我想获取 Android Activity 类的签名。但是如果我写javap -s android.app.activity,它会导致ERROR: Could not find android.app.activity

我做错了什么?我应该更改 PATH env var 中的内容还是什么?

【问题讨论】:

  • 你应该在课堂上调用它——或者这是一个错字?
  • @Dave Newton Er... 据我所知,Activity 是一个类。如何更改我的 cmdline 请求以获取 Activity 方法签名?
  • 呃....android.app.activity 不是。 android.app.Activity 是。 ADK 类必须在你的类路径中;我无法从这里判断它们是否存在。 (如果 javap 甚至可以对它们起作用;不确定何时/如何进行 lunk 和/或 dexxed。)并且PATHCLASSPATH 无关(而且总的来说,我更喜欢-cp,以避免出现问题。)
  • @Dave Newton javap -s android.app.Activity 也没有帮助。
  • @Dave Newton 谢谢你的回答。类路径在哪里设置以便javap 可以找到它?

标签: android javap


【解决方案1】:

转到您的应用程序目录并

javap -s -classpath bin/classes com.example.myActivity

编辑

对于 Android 核心类添加 bootclasspath

javap -s -bootclasspath /opt/android-sdk/platforms/android-8/android.jar -classpath bin/classes android.app.Activity

【讨论】:

  • 谢谢 :) 为什么不直接将它添加到类路径中呢?
  • @Dave Newton:实际上我在 Eclipse 中工作并且有针对不同 Android 版本(不同 android-X/android.jar 文件)的项目,所以我没有在任何地方手动设置 CLASSPATH。
  • 我会更明确一点:为什么不将它添加到-classpath 参数中?
  • @Dave Newton:没有真正的原因:)
  • @Dave Newton:有趣的是,rt.jarandroid.jar 确实有所不同:javap -s -classpath /opt/android-sdk/platforms/android-8/android.jar:bin/classes java.lang.System 包含 getCallerClass()javap -s -bootclasspath /opt/android-sdk/platforms/android-8/android.jar -classpath bin/classes java.lang.System 不...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 2020-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多