我正在尝试为Android应用安装NewRelic的移动代理。我按照他们的指示,设置了NEWRELIC_HOME(指向代理目录)和ANDROID_HOME(指向Android SDK位置)。当我从应用程序的目录(如建议)运行nrandroid-setup时,我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/android/utils/ILogger
Caused by: java.lang.ClassNotFoundException: com.android.utils.ILogger
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.newrelic.agent.install.Main. Program will exit.
error: java returned a non-zero status code
我已经看过他们的安装视频,而且非常简单,所以不确定为什么我的安装不起作用(唯一不同的是,我在64位Windows 7下运行,他们使用的是Mac)
答案 0 :(得分:4)
我认为您可能已经使用New Relic打开了一张票,但在之前的实例中,通过检查您的环境变量并更新SDK来解决此问题(我包括更新New Relic监控SDK以获得良好的衡量标准,但它不太可能是原因)
1)验证您是否已声明NEWRELIC_HOME和ANDROID_HOME,通常是通过运行'export'命令来确保声明两者。然后确保您可以根据这些变量进行导航,并看到它们可以找到正确的位置。如果您仍然遇到问题,请在回复中包含“导出”的结果。
PowerShell中的使用Get-ChildItem Env:
在终端使用中export
使用SET
2)更新您的Android SDK
要将Eclipse的ADT插件更新到最新版本,请按照下列步骤操作:
选择帮助>软件更新>查找并安装....
选择“搜索当前安装的功能的更新”,然后按“完成”。
如果有任何ADT更新,请选择并安装。
3)确保您拥有最新版本的适用于Android的移动应用程序New Relic。
我们的Android代理的最新版本可通过登录rpm.newrelic.com并访问Mobile>“查看说明”或“添加新的移动应用”来获取
值得注意的是,我们的需求页面上没有列出Android SDK,我们只是意识到这会导致一些用户遇到麻烦,我认为步骤2)将解决问题。一旦我们对所有测试和验证进行了测试,我也将根据该要求更新我们的文档。
答案 1 :(得分:2)
基本上,Toby所说的所有内容都会检查您正在运行的Java版本。在我的情况下,我无法用java 1.6.0_32构建,它只在我升级到版本1.7.0_13时才有效
答案 2 :(得分:2)
你必须改变你的android sdk它可能是becoz你的android sdk_> tools-> sdklibs.jar没有记录器类请用最新的更改sdk我已经更改了sdk并解决了我的问题。