无法使用安卓MoPub SDK Gradle初始化Fabric

4

我正在尝试将MoPub SDK添加到我的libgdx游戏中。我使用了Gradle集成,看起来很好用。但是我无法使用新的MoPub()对象提供给Fabric。我使用的是Android Studio 1.2.1.1,并遵循https://github.com/mopub/mopub-android-sdk的要求。

Fabric.with(this, new Crashlytics(), new MoPub());

Android Studio中的返回值:

Error:(89, 15) error: method with in class Fabric cannot be applied to given types;
required: Context,Kit[]
found: AndroidLauncher,Crashlytics,MoPub
reason: varargs mismatch; MoPub cannot be converted to Kit

由于某些原因,MoPub对象未被识别为正确的类型。我不知道为什么。

这是我的gradle文件的样子:

repositories {
    jcenter()
    maven { url 'https://maven.fabric.io/public' }
}

configurations { natives }

dependencies {
    compile project(":core")

    compile files('libs/mopub-volley-1.1.0.jar')
    compile files('libs/android-support-v7-recyclerview.jar')
    compile files('libs/annotations-4.1.1.4.jar')
    compile files('libs/android-support-v4.jar')

    compile('com.mopub:mopub-sdk:4.0.0@aar') {
        transitive = true
    }
    compile('com.crashlytics.sdk.android:crashlytics:2.2.2@aar') {
        transitive = true;
    }
3个回答

4

MoPub不是一个Kit(不扩展Kit)。您不需要将其添加到Fabric.with()调用中。只要您的权限和依赖项正确,那么您就可以开始使用它了。为了重申,只需要更改此处:

Fabric.with(this, new Crashlytics(), new MoPub());

转换为:

Fabric.with(this, new Crashlytics());

请注意,我假设this是一个有效的上下文对象。

MoPub似乎可以工作,因为我的日志显示尝试加载广告,但由于我还没有任何mopub id,所以失败了。然而,我想使用Fabric插件和仪表板。由于我实际上从未向fabric提供mopub,因此Fabric插件停留在“请构建和运行您的应用程序”上。 - AxlDotm
@davehenry,这个改变是什么时候的? - Etienne Lawlor
嗯,我不确定。自从几个月前升级到 Fabric 以来就一直是这样。 - davehenry

2

将此更改

compile('com.mopub:mopub-sdk:4.0.0@aar') {
        transitive = true
    }

为了

compile('com.mopub.sdk.android:mopub:4.0.0@aar') {
            transitive = true;
        }

前者是独立的mopub SDK,后者是fabric kit的一部分。那么它应该可以工作。


0

当我将我的项目从Eclipse迁移到Android Studio时(在Eclipse中我使用外部的jar文件,在Android Studio中我使用Gradle),我遇到了与Crashlytics类似的问题。我只是忘记从libs文件夹中删除旧的Crashlytics jar文件。在我删除它之后,一切正常运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接