Biswajit Karmakar
Biswajit Karmakar

Reputation: 9897

Google Analytics throws NoClassDefFoundError at runtime

When compiling project, it works fine but when run it throws a runtime exception

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

Everything is well configured like added google analytics dependency in gradle file

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'
}

Permission in manifest file

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

Initialization and trigger event from code base

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

Here AnalyticsTrackers is a custom class which contains common GoogleAnalytics functionality.

Upvotes: 2

Views: 420

Answers (1)

Biswajit Karmakar
Biswajit Karmakar

Reputation: 9897

Enable Multidex support solve this problem. Here is how to configure it.

In build gradle file

 defaultConfig {
        multiDexEnabled true
 }

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

In my application class

public class MyApplication extends Application {

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

Upvotes: 2

Related Questions