New Relic不能工作(Gradle+Android Studio)

5

我在使用Gradle和Android Studio时,在安卓应用中启用New Relic监控遇到了问题。

我按照说明书添加New Relic到build.gradle文件中,将代码添加到活动中并在清单文件中请求权限:

buildscript {
  repositories {
    mavenCentral()
  }

  dependencies {
    classpath 'com.newrelic.agent.android:agent-gradle-plugin:3.239.0'
  }
}

repositories {
  mavenCentral()
}

apply plugin: 'android'
apply plugin: 'newrelic'

dependencies {
  compile 'com.newrelic.agent.android:android-agent:3.239.0'
}

但是我无法构建这个应用程序。结果如下:

java.lang.ClassNotFoundException: com.newrelic.agent.compile.RewriterAgent
    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)
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:280)
    at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:348)
[newrelic] Error encountered while loading the New Relic agent
com.sun.tools.attach.AgentInitializationException: Agent JAR loaded but agent failed to initialize
    at sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:103)
    at com.newrelic.agent.android.NewRelicGradlePlugin.apply(NewRelicGradlePlugin.java:47)
    at com.newrelic.agent.android.NewRelicGradlePlugin.apply(NewRelicGradlePlugin.java:15)
    at org.gradle.api.internal.plugins.DefaultPluginContainer.providePlugin(DefaultPluginContainer.java:104)
    at org.gradle.api.internal.plugins.DefaultPluginContainer.addPluginInternal(DefaultPluginContainer.java:68)
    at org.gradle.api.internal.plugins.DefaultPluginContainer.apply(DefaultPluginContainer.java:34)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyPlugin(DefaultObjectConfigurationAction.java:101)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:32)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:72)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:114)
    at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:39)
    at org.gradle.api.Project$apply.call(Unknown Source)

我错过了什么吗?在 Eclipse 中一切都正常工作。

我认为你可能需要直接联系New Relic支持,网址是support.newrelic.com。我以前没有见过这样的错误,想要进行调查(我在New Relic工作)。 - Nočnica
你使用的Gradle版本和Android Gradle插件版本是什么? - Eugen Martynov
Gradle 1.9 和 com.android.tools.build:gradle:0.7.3。 - Yozooo
看起来Gradle 1.9得到了完全支持,我们应该能够在与New Relic的一些咨询中使其正常工作。其他用户已经成功地使用com.android.tools.build:gradle:0.7.+进行构建。 - Nočnica
我也遇到了许多问题,无法让NewRelic正常工作 - 而且他们的支持团队也不知道怎么回事 :( - slott
有人找到了解决这个问题的方法吗?我仍然遇到这个错误。 - Carla Urrea Stabile
2个回答

1

有一个新版本的New Relic客户端可用。它解决了V3.361.0在较新的JDK和Proguard方面存在的问题。以下是您应该使用的内容,以解决JDK问题。

classpath 'com.newrelic.agent.android:agent-gradle-plugin:3.378.0'

将这个代码粘贴到你在 build.gradle 中列出依赖项的位置。如果不起作用,请告诉我。


是的,它有所帮助,但在清除Gradle缓存(~/.gradle)后。 - hexagoncode

1

当我尝试使用JDK8构建我的项目时,遇到了相同的错误。当我切换到JDK7时,问题得到了解决。New Relic支持怀疑这是Java 8的一个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接