【问题标题】:Urban airship jar issue城市飞艇罐问题
【发布时间】:2014-10-19 08:48:58
【问题描述】:

您好,我决定使用 Urban Airship 来处理我在 Android 上的通知。 但是在运行时会出现这个错误:

ERROR/AndroidRuntime(16575): FATAL EXCEPTION: Thread-9778
        java.lang.NoClassDefFoundError: com.urbanairship.R$string
        at com.urbanairship.push.NotificationActionButtonGroupFactory.createUrbanAirshipGroups(NotificationActionButtonGroupFactory.java:40)
        at com.urbanairship.push.PushManager.<init>(PushManager.java:198)
        at com.urbanairship.push.PushManager.<init>(PushManager.java:186)
        at com.urbanairship.UAirship.<init>(UAirship.java:107)
        at com.urbanairship.UAirship.executeTakeOff(UAirship.java:302)
        at com.urbanairship.UAirship.access$000(UAirship.java:54)
        at com.urbanairship.UAirship$2.run(UAirship.java:260)
        at java.lang.Thread.run(Thread.java:841)

我正在尝试使用最后一个 Urban 飞艇库:

urbanairship-lib-5.0.1.jar

与:

android-support-v4.jar

我的 AndroidManifest 遵循 Documenttation,这是我的应用程序类:

public class TestApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        AirshipConfigOptions options = AirshipConfigOptions.loadDefaultOptions(this);
        options.developmentAppKey = "***";
        options.developmentAppSecret = "***";
        options.productionAppKey = "***";
        options.productionAppSecret = "***";
        options.inProduction = false;
        UAirship.takeOff(this, options);

        //String channelId = UAirship.shared().getPushManager().getChannelId();
        //Log.i(TAG, "My Application Channel ID: " + channelId);
    }
}

【问题讨论】:

  • AirshipConfigOptions 选项 = AirshipConfigOptions.loadDefaultOptions(getApplicationContext());
  • 你找到解决方案了吗?

标签: java android push-notification urbanairship.com


【解决方案1】:

当您下载最新的捆绑包时,您会发现一个名为 urbanairship-lib 的文件夹。将该文件夹作为库项目添加到 Eclipse,并作为依赖项项目添加到您的 App 项目。该 urbanairship-lib 项目包含 urban airship-lib-5.0.2.jar 以及 airship-lib-5.0.2.jar 之外的字符串定义。这就是为什么如果你只使用 airship-lib-5.0.2.jar 你会得到 java.lang.NoClassDefFoundError: com.urbanairship.R$string。希望这会有所帮助。

【讨论】:

  • 是的,谢谢我实际上在使用 intelliJ 问题是我将城市飞艇库添加为库项目,现在我可以得到 java.lang.NoClassDefFoundError: com.urbanairship.R$string 如果我添加 jar 和库作为我的主项目的依赖项。但是,如果我将 urbanairship-lib 项目添加到我的主项目中,并将 jar 作为 urbainairship-lib 的依赖项.. 我现在在 urbanairship 方法上得到一个 java.lang.NoClassDefFoundError
  • 您需要将 urbanairship-lib 项目作为库项目添加到您的主应用程序项目中,就像在上面发布的链接 (developer.android.com/tools/projects/…) 中一样,不确定如何在 IntelliJ 上执行此操作。顺便说一句,我相信他们将字符串放在 JAR 之外,以防您需要添加他们没有想到的语言(参见 values.xml)等...
  • 是的,但是当我这样做时,每次调用城市飞艇库的任何函数时都会出现 java.lang.NoClassDefFoundError ...
【解决方案2】:

您必须将城市飞艇图书馆作为图书馆项目进行广告 http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多