Google Analytics 在运行时抛出 NoClassDefFoundError
Google Analytics throws NoClassDefFoundError at runtime
编译项目时,它工作正常但是当 运行 它抛出一个 运行 时间异常
java.lang.NoClassDefFoundError: com.fiz.AnalyticsTrackers
一切都配置得很好,就像在 gradle 文件
中添加了 google 分析依赖项
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'
}
清单文件中的权限
<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 是一个自定义 class,它包含常见的 GoogleAnalytics 功能。
启用 Multidex 支持解决此问题。下面是配置方法。
正在构建 gradle 文件
defaultConfig {
multiDexEnabled true
}
compile 'com.android.support:multidex:1.0.1'
在我的申请中class
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
编译项目时,它工作正常但是当 运行 它抛出一个 运行 时间异常
java.lang.NoClassDefFoundError: com.fiz.AnalyticsTrackers
一切都配置得很好,就像在 gradle 文件
中添加了 google 分析依赖项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'
}
清单文件中的权限
<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 是一个自定义 class,它包含常见的 GoogleAnalytics 功能。
启用 Multidex 支持解决此问题。下面是配置方法。
正在构建 gradle 文件
defaultConfig {
multiDexEnabled true
}
compile 'com.android.support:multidex:1.0.1'
在我的申请中class
public class MyApplication extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}