首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取错误:找不到方法com.urbanairship.Autopilot.automaticTakeOff

获取错误:找不到方法com.urbanairship.Autopilot.automaticTakeOff
EN

Stack Overflow用户
提问于 2016-02-03 20:04:36
回答 1查看 456关注 0票数 0

我想用UrbanAirship最新的软件开发工具包创建一个文件。我已经在应用程序块下的app-xml中添加了Autopilot元数据(<meta-data android:name="com.urbanairship.autopilot" android:value="com.sample.aneAndroid.TakeOffHelper" /> ),还创建了Autopilot的子类并在其中添加了AirshipConfigOptions。当我试图在实现FREFunction的类中调用Autopilot.automaticTakeOff(app);时,它给出了以下错误-

代码语言:javascript
复制
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

TakeOffHelper.java

代码语言:javascript
复制
@Override
    public AirshipConfigOptions createAirshipConfigOptions(Context context) {
        Log.v("Autopilot", "createAirshipConfigOptions called");
        AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(context.getApplicationContext());
        Log.v("Autopilot", "createAirshipConfigOptions called " + options);
        return options;
    }

    @Override
    public void onAirshipReady(UAirship airship) {
        Log.v("Autopilot", "onAirshipReady called");
         DefaultNotificationFactory defaultNotificationFactory = new DefaultNotificationFactory(UAirship.getApplicationContext());
        defaultNotificationFactory.setColor(NotificationCompat.COLOR_DEFAULT);

        // Set it
        airship.getPushManager().setNotificationFactory(defaultNotificationFactory);

        // Enable Push
        airship.getPushManager().setPushEnabled(true);

    }

UAPushNotificationExtensionInitFunction.java

代码语言:javascript
复制
public FREObject call(FREContext context, FREObject[] args) {

        UAPushNotificationExtensionContext nec = (UAPushNotificationExtensionContext) context;
        android.app.Activity activity = nec.getActivity();
        nec.activity = activity;

         Application app = context.getActivity().getApplication();
         Autopilot.automaticTakeOff(app);}
EN

回答 1

Stack Overflow用户

发布于 2016-02-04 01:02:14

这可能是由于错误的.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是一个包含您的Java类和所有需要的库类的组合jar文件。

从您的airshipWrapper.swc中提取library.swf

working/default是包含与airshipWrapper.swc中的类具有相同签名的library.swf的路径(这样当您在模拟器中运行项目时,它就不会中断)

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35176580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档