得到错误:无法找到方法com.urbanairship.Autopilot.automaticTakeOff

时间:2016-02-03 12:04:36

标签: android flex urbanairship.com ane

我想使用UrbanAirship最新的sdk创建一个文件。我在应用程序块下的app-xml中添加了Autopilot元数据txtAppendValue.BorderThickness=new Thickness("0,3,0,3"); ,并创建了Autopilot的子类,并在那里添加了AirshipConfigOptions。当我尝试在实现FREFunction的类中调用select top 10 Note, LEN(Note) AS Before, LEN(replace(replace(replace(Note,' ','<>'),'><',''),'<>',' ') ) AS After, replace(replace(replace(Note,' ','<>'),'><',''),'<>',' ') as Note from #ClientNote WHERE note LIKE '% %' order by DATALENGTH(Note) desc 时,它会给出以下错误 -

(<meta-data android:name="com.urbanairship.autopilot" android:value="com.sample.aneAndroid.TakeOffHelper" /> )

TakeOffHelper.java

Autopilot.automaticTakeOff(app);

UAPushNotificationExtensionInitFunction.java

02-03 17:14:11.949  23088-23088/? I/dalvikvm﹕ Could not find method com.urbanairship.Autopilot.automaticTakeOff, referenced from method com.sample.aneAndroid.UAPushNotificationExtensionSubscribeFunction.call
02-03 17:14:11.949  23088-23088/? W/dalvikvm﹕ VFY: unable to resolve static method 3322: Lcom/urbanairship/Autopilot;.automaticTakeOff (Landroid/app/Application;)V

1 个答案:

答案 0 :(得分:0)

这可能是由于.jar文件不正确造成的。我使用以下格式的命令来构建我的ANE:

adt -package -target ane bin/airshipWrapper.ane src/extension.xml -swc lib/airshipWrapper.swc -platform Android-ARM -C working/android . -platform default -C working/default .

bin/airshipWrapper.ane是ANE的目标位置

src/extension.xml是您尝试构建的ANE的extension.xml的路径

lib/airshipWrapper.swc是swc的路径,其中包含ANE的ActionScript类(这是您调用ExtensionContext.createExtensionContext()的类的地方)。

working/android是包含airshipWrapper.jarlibrary.swf

的路径

airshipWrapper.jar是一个组合的jar文件,包含您的Java类和所需的所有库类*

library.swf摘自airshipWrapper.swc

working/default是包含library.swf的路径,其路径与airshipWrapper.swc中的类相同(因此,当您在模拟器中运行时,您的项目不会中断)< / p>

*对于jar文件,我从我的Java项目中导出它,然后使用任何必要的库类运行jar更新。我使用ant,但是从一个jar中提取类并更新另一个jar的任何方法都可以。

另请参阅AIR 3 Native Extensions for Android - Can I/How to include 3rd party libraries?以获取有关组合.jar文件的更多信息。