Errors integrating Flurry Analytics into Android Godot project

233 Views Asked by At

Non-programmer newbie here. I have issues integrating Flurry Analytics into my first Godot Android project (and will do it for iOS after too). I've done everything as instructed I believe but I keep getting errors when exporting to Android and this is the latest one I got;

> Task :compileDebugJavaWithJavac FAILED

C:\Users\Acer\Desktop\Godot\game\android\build\src\com\godot\game\GodotApp.java:48: error: package FlurryAgent does not exist new FlurryAgent.Builder()

^ 1 error

FAILURE: Build failed with an exception.

  • What went wrong:

Execution failed for task ':compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

Did I paste any codes at the wrong files? I pasted the arr into the build.gradle file within the Android folder of my Godot project here;

apply from: 'config.gradle'

buildscript {
    apply from: 'config.gradle'

    repositories {
        google()
        mavenCentral()
//CHUNK_BUILDSCRIPT_REPOSITORIES_BEGIN
//CHUNK_BUILDSCRIPT_REPOSITORIES_END
    }
    dependencies {
        classpath libraries.androidGradlePlugin
        classpath libraries.kotlinGradlePlugin
//CHUNK_BUILDSCRIPT_DEPENDENCIES_BEGIN
//CHUNK_BUILDSCRIPT_DEPENDENCIES_END

    }
}

apply plugin: 'com.android.application'

allprojects {
    repositories {
        google()
        mavenCentral()
//CHUNK_ALLPROJECTS_REPOSITORIES_BEGIN
//CHUNK_ALLPROJECTS_REPOSITORIES_END

        // Godot user plugins custom maven repos
        String[] mavenRepos = getGodotPluginsMavenRepos()
        if (mavenRepos != null && mavenRepos.size() > 0) {
            for (String repoUrl : mavenRepos) {
                maven {
                    url repoUrl
                }
            }
        }
    }
}

dependencies {  
implementation 'com.flurry.android:analytics:13.1.0@aar'
    implementation libraries.supportCoreUtils
    implementation libraries.kotlinStdLib
    implementation libraries.v4Support

    if (rootProject.findProject(":lib")) {
        implementation project(":lib")
    } else if (rootProject.findProject(":godot:lib")) {
        implementation project(":godot:lib")
    } else {
        // Custom build mode. In this scenario this project is the only one around and the Godot
        // library is available through the pre-generated godot-lib.*.aar android archive files.
        debugImplementation fileTree(dir: 'libs/debug', include: ['*.jar', '*.aar'])
        releaseImplementation fileTree(dir: 'libs/release', include: ['*.jar', '*.aar'])
    }

And I then pasted the initialising calls to the GodotApp.java file in the src folder of the project. This is where I suspect where I got it wrong;

package com.godot.game;

import org.godotengine.godot.FullScreenGodotApp;

import android.os.Bundle;

/**
 * Template activity for Godot Android custom builds.
 * Feel free to extend and modify this class for your custom logic.
 */
public class GodotApp extends FullScreenGodotApp {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        setTheme(R.style.GodotAppMainTheme);
        super.onCreate(savedInstanceState);

new FlurryAgent.Builder()
       .withLogEnabled(true)
       .build(this, "9NZTG7YG8GZBP9SY7K89");

    }
}

Appreciate it if you can enlighten this clueless newbie. I have very little programming knowledge so certain things are still very foreign to me.

UPDATE: I've decided to abandon Flurry and just use Firebase instead since there's much more information about it available online. Implemented it to my project within minutes.

1

There are 1 best solutions below

3
Po-Ting Wu On

In your app's build.gradle file, you need to add Flurry dependency.

  // In your main app's Gradle config file:

  repositories {
    mavenCentral()
  }

  dependencies {
    // Recommended to add Google Play Services
    implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
    
    // Required for Flurry Analytics integration
    implementation 'com.flurry.android:analytics:13.1.0'
  }

and in your codes, add

import com.flurry.android.FlurryAgent;