java - Google Analytics 在运行时抛出 NoClassDefFoundError

标签 java android google-analytics google-analytics-firebase android-studio-2.1

编译项目时工作正常,但运行时抛出运行时异常

java.lang.NoClassDefFoundError: com.fiz.AnalyticsTrackers$1

一切都配置良好,例如在 gradle 文件中添加谷歌分析依赖项

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.google.android.gms:play-services-analytics:7.3.0'
}

list 文件中的权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

来自代码库的初始化和触发事件

AnalyticsTrackers analyticsTrackers = AnalyticsTrackers.getInstance();
Tracker tracker = analyticsTrackers.getTracker();
tracker.send(new HitBuilders.EventBuilder().setCategory(category).setAction(action).setLabel(label).build());

此处 AnalyticsTrackers 是一个自定义类,其中包含常见的 GoogleAnalytics 功能。

最佳答案

启用 Multidex 支持可以解决此问题。以下是如何配置它。

在构建gradle文件中

 defaultConfig {
        multiDexEnabled true
 }

compile 'com.android.support:multidex:1.0.1'

在我的应用程序类中

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

关于java - Google Analytics 在运行时抛出 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37431114/

相关文章:

java - 如何在 Android 中使用 XPath 编辑属性

android - 在 Android 中选择选项卡时如何关闭 TabWidget

JAVA:将请求和响应消息(XML 或 JSON)存储在数据库中以供 Web 服务或 HTTP 调用

java - 无法以编程方式添加到 JPanel

java - 将实体保存到数据存储后找不到实体

javascript - 在 google-app 脚本中的 If..If Else..Else 中调用函数

javascript - 使用 if 语句关闭 html 中的一段代码

java - 使用selenium java的字体颜色

崩溃/终止后的 Android 任务返回堆栈和应用程序 session 管理

ios - Firebase 和谷歌标签管理器 : <FIRAnalytics/WARNING> Attempted to log nil event