2014-04-23 18 views
9

Tôi có một dự án sử dụng hệ thống xây dựng gradle và tôi sẵn sàng thêm giám sát Relic mới vào nó.Lỗi tác nhân mới của Relic Android với gradle

Dự án (bao gồm cả Relic mới) đang hoạt động tốt trên Linux (Fedora 20), nhưng sẽ không xây dựng trên hệ thống phát triển Mac của tôi và đưa ra một lỗi nêu rõ Agent JAR loaded but agent failed to initialize.

Dưới đây là toàn bộ nhật ký của các lỗi:

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 

Tôi cũng đã thử nghiệm với một tươi tạo ra, bare-bones dự án, nhưng nó thất bại với cùng lỗi chính xác.

Tôi sử dụng phiên bản JDu 1.7u55, nếu điều đó quan trọng.

Cảm ơn

+0

Có cùng vấn đề này. Có cách giải quyết nào không? Sử dụng Travis. – loeschg

+0

@loeachg: Chưa tôi cho là vậy. –

+0

Chuyển từ OpenJDK sang Oracle JDK giải quyết vấn đề cho tôi. Hy vọng nó cũng làm việc cho trường hợp của bạn. –

Trả lời

6

Rất tiếc, u55 đã giới thiệu thay đổi phá vỡ tác nhân Relic mới. Bây giờ, nếu có thể, hãy sử dụng một phiên bản Java cũ hơn để giải quyết vấn đề này trong khi xây dựng. Điều này không ảnh hưởng đến APK kết quả. New Relic nhận thức được vấn đề này và đang cố gắng khắc phục nó càng nhanh càng tốt.

+0

2 tuần rồi, chúng tôi có khắc phục được vấn đề này chưa? –

+0

com.newrelic.agent.android:agent-gradle-plugin:3.372.0 đã khắc phục sự cố này cho tôi – styler1972

4

tôi gửi qua email hỗ trợ New Relic, và tôi đều có phản ứng sau:

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

Cảm ơn bạn đã loeschg thông tin. –

+4

Thật không may có vẻ như họ không hiểu các khái niệm cơ bản về sửa lỗi và phát hành bản cập nhật. Đây là một vấn đề đang giữ rất nhiều người dùng, bao gồm cả tôi và bạn, từ việc chạy tác nhân của họ trên phần mềm của chúng tôi và đó là một vấn đề lớn cần được xử lý nhanh chóng. Họ đang sửa vấn đề này trên một phiên bản mới mà họ thậm chí không chắc chắn khi nào sẽ được phát hành. Giả sử rằng đây không phải là một sửa chữa mà sẽ gây ra rất nhiều lỗi mới, họ nên đã đẩy nó vào mã phiên bản cũ của họ và phát hành nó, thay vì làm cho chúng ta chờ đợi vì nó bị mắc kẹt với một số tính năng mới mà họ chưa thử nghiệm. –

1

Có một phiên bản mới của khách hàng di tích mới có sẵn. Nó giải quyết các vấn đề mà V3.361.0 có xung quanh JDK và proguard mới hơn. Đây là những gì bạn nên sử dụng để giải quyết vấn đề JDK.

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

Dán mã này vào build.gradle nơi bạn đã liệt kê phụ thuộc của mình. Hãy cho tôi biết nếu nó không hoạt động.

+0

Đã không làm việc cho tôi. –

Các vấn đề liên quan