Android groovy中的MissingMethodException
我正在尝试与pdfbox和groovy一起工作。我编写了一个代码,它以字符串格式获取一些信息,并用这些信息创建一个pdf文档。我想将此代码集成到我正在创建的android应用程序中 我在intellij IDEA中运行了代码,它运行得非常好,但是当我尝试在Android Studio中运行代码时,我在代码的某些部分中得到了一个MissingPropertyException,它在Android Studio中完全不起作用。本部分中的代码使用PDRectangle类中名为Android groovy中的MissingMethodException,android,groovy,Android,Groovy,我正在尝试与pdfbox和groovy一起工作。我编写了一个代码,它以字符串格式获取一些信息,并用这些信息创建一个pdf文档。我想将此代码集成到我正在创建的android应用程序中 我在intellij IDEA中运行了代码,它运行得非常好,但是当我尝试在Android Studio中运行代码时,我在代码的某些部分中得到了一个MissingPropertyException,它在Android Studio中完全不起作用。本部分中的代码使用PDRectangle类中名为getWidth()的方法
getWidth()
的方法。我确信在这个特定的类中有这样一个方法。那为什么我还是会被遗漏
错误输出:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.silverfix.groovytestapp, PID: 5723
groovy.lang.MissingMethodException: No signature of method: org.apache.pdfbox.pdmodel.common.PDRectangle.getWidth() is applicable for argument types: () values: []
Possible solutions: getAt(java.lang.String), with(groovy.lang.Closure), getClass()
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:49)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at dgdlib.components.FormMetaHolder$_setupSizes_closure1.doCall(FormMetaHolder.groovy:41)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3170)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.collect(DefaultGroovyMethods.java:3140)
at org.codehaus.groovy.runtime.dgm$66.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at dgdlib.components.FormMetaHolder.setupSizes(FormMetaHolder.groovy:26)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at dgdlib.DGDExecuter.initialize(DGDExecuter.groovy:48)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at dgdlib.DGDExecuter.execute(DGDExecuter.groovy:36)
at com.silverfix.groovytestapp.MainActivity$1.onClick(MainActivity.java:52)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
下面是我在其中运行groovy代码的活动代码:
package com.silverfix.groovytestapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.ArrayList;
import java.util.List;
import dgdlib.Constants;
import dgdlib.DGDExecuter;
import dgdlib.components.entities.DGObject;
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.create_doc);
// DGObject class represents a specific object which has its own attributes that needs to be inserted to the pdf
final List<DGObject> goods = new ArrayList();
DGObject object = new DGObject("3456", "2.3", "Packing Group", "Description", "Qunatity Type"
,"Packing Instructions", "Authorization");
goods.add(object);
final Bundle properties = new Bundle();
// Insert some information to this bundle
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DGDExecuter().execute(MainActivity.this, properties, goods);
}
});
}
}
这里有什么问题
以下是项目层次结构的图像:
下面是PDRectangle类的图像,特别是方法getWidth()
的部分:
你能将实际异常添加到你的问题中吗?@tim_-yates我在姿势中添加了错误代码:)@tim_-yates你能再看看吗?你能将实际异常添加到你的问题中吗?@tim_-yates我在姿势中添加了错误代码:)@tim_-yates你能再看看吗?
PDAnnotationWidget widget = field.getWidgets().get(0)
PDRectangle rectangle = widget.getRectangle()
float width = rectangle.getWidth()