2014-04-23 13 views
9

Ho un progetto che utilizza il sistema gradle build e sono disposto ad aggiungere il monitoraggio New Relic su di esso.Nuovo errore agente Android Relic con gradle

Il progetto (compresa New Relic) funziona correttamente su Linux (Fedora 20), ma non si baserà sul mio sistema di sviluppo Mac e fornisce un errore che indica Agent JAR loaded but agent failed to initialize.

Ecco il registro completo dell'errore:

Dev-1:test 0x4d$ ./gradlew clean 
> Configuring > 1/2 projects > :appobjc[4437]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. 
[newrelic.error] Agent startup error 
java.lang.IllegalAccessException: Can not set static final java.lang.Object field java.util.logging.Logger.treeLock to com.newrelic.agent.compile.RewriterAgent$InvocationDispatcher 
    at sun.reflect.UnsafeFieldAccessorImpl.throwFinalFieldIllegalAccessException(UnsafeFieldAccessorImpl.java:73) 
    at sun.reflect.UnsafeFieldAccessorImpl.throwFinalFieldIllegalAccessException(UnsafeFieldAccessorImpl.java:77) 
    at sun.reflect.UnsafeQualifiedStaticObjectFieldAccessorImpl.set(UnsafeQualifiedStaticObjectFieldAccessorImpl.java:77) 
    at java.lang.reflect.Field.set(Field.java:741) 
    at com.newrelic.agent.compile.RewriterAgent.createInvocationDispatcher(RewriterAgent.java:772) 
    at com.newrelic.agent.compile.RewriterAgent.premain(RewriterAgent.java:137) 
    at com.newrelic.agent.compile.RewriterAgent.agentmain(RewriterAgent.java:102) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382) 
    at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:407) 
> Configuring > 1/2 projects > :appExcjava.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382) 
    at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(InstrumentationImpl.java:407) 
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: Can not set static final java.lang.Object field java.util.logging.Logger.treeLock to com.newrelic.agent.compile.RewriterAgent$InvocationDispatcher 
    at com.newrelic.agent.compile.RewriterAgent.premain(RewriterAgent.java:168) 
    at com.newrelic.agent.compile.RewriterAgent.agentmain(RewriterAgent.java:102) 
    ... 6 more 
Caused by: java.lang.IllegalAccessException: Can not set static final java.lang.Object field java.util.logging.Logger.treeLock to com.newrelic.agent.compile.RewriterAgent$InvocationDispatcher 
    at sun.reflect.UnsafeFieldAccessorImpl.throwFinalFieldIllegalAccessException(UnsafeFieldAccessorImpl.java:73) 
    at sun.reflect.UnsafeFieldAccessorImpl.throwFinalFieldIllegalAccessException(UnsafeFieldAccessorImpl.java:77) 
    at sun.reflect.UnsafeQualifiedStaticObjectFieldAccessorImpl.set(UnsafeQualifiedStaticObjectFieldAccessorImpl.java:77) 
    at java.lang.reflect.Field.set(Field.java:741) 
    at com.newrelic.agent.compile.RewriterAgent.createInvocationDispatcher(RewriterAgent.java:772) 
    at com.newrelic.agent.compile.RewriterAgent.premain(RewriterAgent.java:137) 
    ... 7 more 
> Configuring > 1/2 projects > :appAgent failed to start! 
[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:121) 
    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) 
    at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.groovy:34) 
    at org.gradle.api.Script$apply.callCurrent(Unknown Source) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) 
    at build_hf6jnn002tc8mnuv025i0lb49.run(/Users/0x4d/Desktop/test/app/build.gradle:15) 
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52) 
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:156) 
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38) 
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25) 
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34) 
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55) 
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:507) 
    at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:82) 
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:31) 
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:142) 
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113) 
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64) 
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) 
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35) 
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50) 
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
    at org.gradle.launcher.Main.doAction(Main.java:46) 
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
    at org.gradle.launcher.Main.main(Main.java:37) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32) 
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33) 
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:130) 
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) 

FAILURE: Build failed with an exception. 

* Where: 
Build file '/Users/0x4d/Desktop/test/app/build.gradle' line: 15 

* What went wrong: 
A problem occurred evaluating project ':app'. 
> com.sun.tools.attach.AgentInitializationException: Agent JAR loaded but agent failed to initialize 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 14.094 secs 

Ho anche provato con un fresco generato progetto, ridotto all'osso, ma non riesce con l'esatto stesso errore.

Io uso la versione JDK 1.7u55, se questo è importante.

Grazie

+0

Avendo lo stesso problema. C'è ancora una soluzione? Usando Travis. – loeschg

+0

@loeachg: Non ancora suppongo. –

+0

Il passaggio da OpenJDK a Oracle JDK risolve il problema per me. Spero che funzioni anche per il tuo caso. –

risposta

6

Purtroppo U55 ha introdotto un cambiamento che rompe l'agente di New Relic. Per ora, se possibile, utilizzare una versione precedente di Java per ovviare a questo problema durante la creazione. Questo non dovrebbe influenzare l'APK risultante. New Relic è a conoscenza di questo problema e sta lavorando per risolverlo il più velocemente possibile.

+0

Già da 2 settimane, abbiamo ancora una soluzione per questo problema? –

+0

com.newrelic.agent.android:agent-gradle-plugin:3.372.0 risolto questo problema per me – styler1972

4

Ho contattato il supporto di New Relic, e ho ottenuto la seguente risposta:

Hello,

Thanks for writing into New Relic support.

A new version of the New Relic for Mobile Apps Android SDK is in beta and includes a fix for compatibility with JDK v7u55 and JDK v8

It is available here: https://gist.github.com/asm/bed819fb32253e4cb072 .

We're waiting to release this agent until we hear from users like you that the SDK is running smoothly and instrumentation is now working correctly.

Please let us know if you have any trouble installing this SDK.

I'm going to leave this ticket open so that you can send us an update. Our automatic system will ping you to see how you're doing in a few days and then try to close the ticket a few days after that. If it does, don't worry, write back any time and we'll get right to helping you.

+0

Grazie per le informazioni loeschg. –

+4

Sfortunatamente sembra che non capiscano i concetti di base della risoluzione dei bug e del rilascio degli aggiornamenti. Questo è un problema che impedisce a molti utenti, compresi me e voi, di eseguire i loro agenti sul nostro software ed è un grosso problema che deve essere gestito rapidamente. Stanno risolvendo questo problema su una nuova versione di cui non sono nemmeno sicuro quando verrà rilasciato. Supponendo che questa non sia una correzione che causerà molti nuovi bug, dovrebbero averla spinta al loro vecchio codice di versione testato e rilasciarla, invece di farci aspettare perché è bloccata con alcune nuove funzionalità che non hanno testato. –

1

C'è una nuova versione del nuovo client reliquia disponibili. Risolve i problemi che la V3.361.0 aveva attorno ai nuovi JDK e proguard. Ecco cosa dovresti usare per risolvere il problema JDK.

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

Incolla questo nel tuo build.gradle in cui sono elencate le dipendenze. Fammi sapere se non funziona.

+0

Non ha funzionato per me. –

Problemi correlati