1

I am getting "javax.faces.FacesException: Error performing conversion of value" error when i am creating a new tool for sakai 2.9 cle usinf JSF and Spring..

This is my stacktrace:

org.sakaiproject.portal.api.PortalHandlerException: org.sakaiproject.tool.api.ToolException: org.apache.jasper.JasperException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
        at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:894)
    caused by: org.sakaiproject.tool.api.ToolException: org.apache.jasper.JasperException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
        at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1483)
    caused by: org.apache.jasper.JasperException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    caused by: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
        at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
    caused by: javax.faces.FacesException: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
        at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
    caused by: javax.faces.FacesException: Error performing conversion of value 'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' of type 'class com.sun.proxy.$Proxy61' to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' for managed bean 'AttendanceTool'.
        at com.sun.faces.config.ManagedBeanFactory.getConvertedValueConsideringPrimitives(ManagedBeanFactory.java:885)
        at com.sun.faces.config.ManagedBeanFactory.setPropertiesIntoBean(ManagedBeanFactory.java:575)
        at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:253)
        at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:282)
        at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
        at org.sakaiproject.jsf.app.SakaiVariableResolver.resolveVariable(SakaiVariableResolver.java:76)
        at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:145)
        at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:166)
        at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
        at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
        at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
        at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1397)
        at org.sakaiproject.jsf.attendance.AttendanceIfNotRender.encodeBegin(AttendanceIfNotRender.java:43)
        at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:703)
        at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:613)
        at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:565)
        at org.apache.jsp.attendance.main_jsp._jspx_meth_attendance_005fattendance_005fifnot_005f0(main_jsp.java:393)
        at org.apache.jsp.attendance.main_jsp._jspx_meth_h_005fform_005f0(main_jsp.java:302)
        at org.apache.jsp.attendance.main_jsp._jspx_meth_sakai_005fview_005fcontent_005f0(main_jsp.java:272)
        at org.apache.jsp.attendance.main_jsp._jspx_meth_sakai_005fview_005fcontainer_005f0(main_jsp.java:230)
        at org.apache.jsp.attendance.main_jsp._jspx_meth_f_005fview_005f0(main_jsp.java:195)
        at org.apache.jsp.attendance.main_jsp._jspService(main_jsp.java:141)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)
        at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)
        at org.sakaiproject.jsf.app.SakaiViewHandler.renderView(SakaiViewHandler.java:159)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at org.sakaiproject.tool.attendance.AttendanceFilePickerServlet.dispatch(AttendanceFilePickerServlet.java:158)
        at org.sakaiproject.jsf.util.JsfTool.doGet(JsfTool.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:634)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:511)
        at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1483)
        at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:213)
        at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:96)
        at org.sakaiproject.portal.charon.SkinnableCharonPortal.doGet(SkinnableCharonPortal.java:894)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:695)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)

And my faces-config.xml is

    <?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<faces-config>

  <application>
    <message-bundle>org.sakaiproject.tool.attendance.bundle.Messages</message-bundle>
    <locale-config>
      <default-locale>en</default-locale>
      <supported-locale>de</supported-locale>
      <supported-locale>fr</supported-locale>
      <supported-locale>es</supported-locale>
    </locale-config>
  </application>

<!--sakai2 - take this out. <application>
    <view-handler>
      org.sakaiproject.jsf.custom.SakaiViewHandler
    </view-handler>
    <navigation-handler>
      org.sakaiproject.jsf.custom.SakaiNavigationHandler
    </navigation-handler>
    <variable-resolver>
      org.sakaiproject.jsf.custom.SakaiVariableResolver
    </variable-resolver>
    <state-manager>
      org.sakaiproject.jsf.custom.SakaiStateManager
    </state-manager>
  </application> -->

  <!-- =================== Tool Beans ============== -->
    <managed-bean>

        <description>AttendanceTool</description>
        <managed-bean-name>AttendanceTool</managed-bean-name>
        <managed-bean-class>org.sakaiproject.tool.attendance.AttendanceTool</managed-bean-class>
<!--sakai2      <managed-bean-scope>request</managed-bean-scope>-->
        <managed-bean-scope>session</managed-bean-scope>

        <managed-property>
            <description>attendanceManager</description>
            <property-name>attendanceManager</property-name>
            <value>#{Components["org.sakaiproject.api.app.attendance.AttendanceManager"]}</value>
        </managed-property>

<!--        <managed-property>
            <description>logger</description>
            <property-name>logger</property-name>
            <value>#{Components["org.sakaiproject.service.framework.log.Logger"]}</value>
        </managed-property>-->
        <managed-property>
            <description>attendanceService</description>
            <property-name>attendanceService</property-name>
            <value>#{Components["org.sakaiproject.api.app.attendance.AttendanceService"]}</value>
        </managed-property>    
        <managed-property>
            <description>contentHostingService</description>
            <property-name>contentHostingService</property-name>
            <value>#{Components["org.sakaiproject.content.api.ContentHostingService"]}</value>
        </managed-property> 
    </managed-bean>

  <component>
    <component-type>SakaiAttendanceTable</component-type>
    <component-class>org.sakaiproject.jsf.attendance.AttendanceTableComponent</component-class>
  </component>

  <component>
    <component-type>SakaiAttendanceIframe</component-type>
    <component-class>org.sakaiproject.jsf.attendance.AttendanceIframeComponent</component-class>
  </component>

  <component>
    <component-type>SakaiAttendanceIf</component-type>
    <component-class>org.sakaiproject.jsf.attendance.AttendanceIfComponent</component-class>
  </component>

  <component>
    <component-type>SakaiAttendanceIfNot</component-type>
    <component-class>org.sakaiproject.jsf.attendance.AttendanceIfNotComponent</component-class>
  </component>

  <component>
    <component-type>AttendanceShowArea</component-type>
    <component-class>org.sakaiproject.jsf.attendance.AttendanceShowAreaComponent</component-class>
  </component>

  <render-kit>
    <renderer>
      <component-family>SakaiAttendanceIframe</component-family>
      <renderer-type>SakaiAttendanceIframeRender</renderer-type>
      <renderer-class>org.sakaiproject.jsf.attendance.AttendanceIframeRender</renderer-class>
    </renderer>

    <renderer>
      <component-family>SakaiAttendanceIf</component-family>
      <renderer-type>SakaiAttendanceIfRender</renderer-type>
      <renderer-class>org.sakaiproject.jsf.attendance.AttendanceIfRender</renderer-class>
    </renderer>

    <renderer>
      <component-family>SakaiAttendanceIfNot</component-family>
      <renderer-type>SakaiAttendanceIfNotRender</renderer-type>
      <renderer-class>org.sakaiproject.jsf.attendance.AttendanceIfNotRender</renderer-class>
    </renderer>

    <renderer>
      <component-family>AttendanceShowArea</component-family>
      <renderer-type>AttendanceShowAreaRender</renderer-type>
      <renderer-class>org.sakaiproject.jsf.attendance.AttendanceShowAreaRender</renderer-class>
    </renderer>
  </render-kit>

  <navigation-rule>
    <from-view-id>/attendance/main.jsp</from-view-id>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>permission_error</from-outcome>
      <to-view-id>/attendance/permission_error.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/main_edit.jsp</from-view-id>
    <navigation-case>
      <from-outcome>read</from-outcome>
      <to-view-id>/attendance/read.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>permission_error</from-outcome>
      <to-view-id>/attendance/permission_error.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>delete_confirm</from-outcome>
      <to-view-id>/attendance/delete_confirm.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>edit</from-outcome>
      <to-view-id>/attendance/edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>edit_redirect</from-outcome>
      <to-view-id>/attendance/edit_redirect.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>main</from-outcome>
      <to-view-id>/attendance/main.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/delete_confirm.jsp</from-view-id>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>permission_error</from-outcome>
      <to-view-id>/attendance/permission_error.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/main_student.jsp</from-view-id>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/edit_redirect.jsp</from-view-id>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>permission_error</from-outcome>
      <to-view-id>/attendance/permission_error.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/edit.jsp</from-view-id>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>permission_error</from-outcome>
      <to-view-id>/attendance/permission_error.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>preview</from-outcome>
      <to-view-id>/attendance/preview.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>edit</from-outcome>
      <to-view-id>/attendance/edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>add_attach</from-outcome>
      <to-view-id>/attendance/add_attach.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>remove_attach_confirm</from-outcome>
      <to-view-id>/attendance/remove_attach_confirm.jsp</to-view-id>
      <redirect/>
    </navigation-case>  
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/read.jsp</from-view-id>
    <navigation-case>
      <from-outcome>main_edit</from-outcome>
      <to-view-id>/attendance/main_edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>permission_error</from-outcome>
      <to-view-id>/attendance/permission_error.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>read_preview</from-outcome>
      <to-view-id>/attendance/read_preview.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>read</from-outcome>
      <to-view-id>/attendance/read.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>add_attach</from-outcome>
      <to-view-id>/attendance/add_attach.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>remove_attach_confirm</from-outcome>
      <to-view-id>/attendance/remove_attach_confirm.jsp</to-view-id>
      <redirect/>
    </navigation-case>  
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/preview.jsp</from-view-id>
    <navigation-case>
      <from-outcome>edit</from-outcome>
      <to-view-id>/attendance/edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>preview</from-outcome>
      <to-view-id>/attendance/preview.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/read_preview.jsp</from-view-id>
    <navigation-case>
      <from-outcome>read_preview</from-outcome>
      <to-view-id>/attendance/read_preview.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>read</from-outcome>
      <to-view-id>/attendance/read.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/add_attach.jsp</from-view-id>
    <navigation-case>
      <from-outcome>edit</from-outcome>
      <to-view-id>/attendance/edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>read</from-outcome>
      <to-view-id>/attendance/read.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

  <navigation-rule>
    <from-view-id>/attendance/remove_attach_confirm.jsp</from-view-id>
    <navigation-case>
      <from-outcome>edit</from-outcome>
      <to-view-id>/attendance/edit.jsp</to-view-id>
      <redirect/>
    </navigation-case>
    <navigation-case>
      <from-outcome>read</from-outcome>
      <to-view-id>/attendance/read.jsp</to-view-id>
      <redirect/>
    </navigation-case>
  </navigation-rule>

</faces-config>
4

1 回答 1

1

这是一个 JSF 错误,与 Sakai 没有真正的关系。这里重要的问题是这个:

Error performing conversion of value 
'org.sakaiproject.component.app.attendance.AttendanceManagerImpl@721c3e' 
of type 'class com.sun.proxy.$Proxy61' 
to type 'interface org.sakaiproject.api.app.attendance.AttendanceManager' 
for managed bean 'AttendanceTool'

通常这是由于在多个类加载器中拥有一份 API 副本。检查以确保您的 JSF 工具和共享中没有 API jar(并检查您没有该 jar 的 2 个版本)。

于 2014-06-06T03:38:16.827 回答