App crash because of my Firebase Analytics Extension

Hello developers, I have build firebase analytics extension successfully but when i export my apk file then the App crashing immediately on start and show me a message "unfortunately app has stopped"

apk file : https://drive.google.com/file/d/1sjUiWAc7SGYOVcMqjfgHJr8Y03KwyX18/view?usp=sharing
java code :

package com.ben10.FirebaseAnalyticsExtension;

import android.os.Bundle;
import android.content.Context;


import com.google.appinventor.components.annotations.*;
import com.google.appinventor.components.runtime.*;
import com.google.appinventor.components.common.ComponentCategory;
import com.google.firebase.analytics.FirebaseAnalytics;


@DesignerComponent(version = 1,  description = "An Extension to use Firebase Analytics, Developed by Ben 10",
        category = ComponentCategory.EXTENSION,
        nonVisible = true,   iconName = "https://res.cloudinary.com/dgyoyowu5/image/upload/v1609050256/logo_firebase_icon_1_o1pzsy.png")
@SimpleObject(external = true)

@UsesLibraries(libraries = "play-services-measurement-api-18.0.0.jar")


public class FirebaseAnalyticsExtension extends AndroidNonvisibleComponent {

    private Context context;
    private ComponentContainer container;

    /**
     * @param container container, component will be placed in
     */
    public FirebaseAnalyticsExtension(ComponentContainer container) {
        super(container.$form());
        this.container = container;
        context = container.$context(); //Added
    }

    FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(this.context);

    @SimpleFunction(description = "enter an id and a name.")
    public void LogEvent(String id, String name){
        try{
            Bundle bundle = new Bundle();
            bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
            bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
            bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
            mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
            AddedEvent();
        }
        catch(Exception e){
            ErrorEvent(e.getMessage());
        }
    }

    @SimpleEvent(description = "after completed.")
    public void AddedEvent(){
        EventDispatcher.dispatchEvent(this, "AddedEvent");
    }

    @SimpleEvent(description = "error")
    public void ErrorEvent(String error){
        EventDispatcher.dispatchEvent(this, "ErrorEvent", error);
    }
}

Device log :

12-28 20:42:02.107 225 225 E BufferQueueCore: [Starting com.oklskdjf.fireanal] setDefaultMaxBufferCount: setting count to 3, previous is 2
12-28 20:42:02.127 14480 14480 E Zygote : no v2
12-28 20:42:02.938 14480 14480 E AndroidRuntime: FATAL EXCEPTION: main
12-28 20:42:02.938 14480 14480 E AndroidRuntime: Process: com.oklskdjf.fireanal, PID: 14480
12-28 20:42:02.938 14480 14480 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/measurement/zzag;
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.google.firebase.analytics.FirebaseAnalytics.getInstance(com.google.android.gms:play-services-measurement-api@@18.0.0:4)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.ben10.FirebaseAnalyticsExtension.FirebaseAnalyticsExtension.(Unknown Source)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance(Native Method)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at gnu.expr.PrimProcedure.apply(PrimProcedure.java:272)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at gnu.mapping.CallContext.runUntilDone(CallContext.java:234)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at gnu.mapping.CallContext.runUntilValue(CallContext.java:298)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at gnu.kawa.reflect.Invoke.applyN(Invoke.java:209)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at gnu.mapping.ProcedureN.apply2(ProcedureN.java:39)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at io.kodular.avaydevil02.Nokia.Screen1.$define(Screen1.yail:10248)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.google.appinventor.components.runtime.Form.onCreateFinish2(SourceFile:510)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.google.appinventor.components.runtime.Form.onCreateFinish(SourceFile:454)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.google.appinventor.components.runtime.Form.onCreate(SourceFile:384)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:6904)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.ActivityThread.-wrap17(ActivityThread.java)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7325)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn’t find class “com.google.android.gms.internal.measurement.zzag” on path: DexPathList[[zip file “/data/app/com.oklskdjf.fireanal-1/base.apk”],nativeLibraryDirectories=[/data/app/com.oklskdjf.fireanal-1/lib/arm, /vendor/lib, /system/lib]]
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

Maga, [28.12.20 21:02]
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: … 24 more
12-28 20:42:02.938 14480 14480 E AndroidRuntime: Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.internal.measurement.zzag
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.Class.classForName(Native Method)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
12-28 20:42:02.938 14480 14480 E AndroidRuntime: … 25 more
12-28 20:42:02.938 14480 14480 E AndroidRuntime: Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
12-28 20:42:03.278 1212 14493 E android.os.Debug: ro.product_ship = true
12-28 20:42:03.278 1212 14493 E android.os.Debug: ro.debug_level = 0x4f4c
12-28 20:42:03.278 1212 14493 E android.os.Debug: sys.mobilecare.preload = false
12-28 20:42:03.298 225 225 E BufferQueueCore: [Application Error: com.oklskdjf.fireanal] setDefaultMaxBufferCount: setting count to 3, previous is 2
12-28 20:42:03.759 225 225 E BufferQueueCore: [com.sec.android.app.launcher/com.android.launcher2.Launcher] setDefaultMaxBufferCount: setting count to 3, previous is 2
12-28 20:42:03.909 14500 14500 E Zygote : no v2
12-28 20:42:08.353 1212 1400 E ViewRootImpl: sendUserActionEvent() mView == null
12-28 20:42:10.195 1212 1212 E NotificationService: Suppressing notification from package com.android.vending by user request.
12-28 20:42:12.427 1212 1529 E NativeLibraryHelper: Failed to load assets verifier: 0
12-28 20:42:12.437 14524 14524 E Zygote : no v2
12-28 20:42:12.527 14524 14534 E NativeLibraryHelper: Failed to load assets verifier: 0
12-28 20:42:12.547 14524 14535 E NativeLibraryHelper: Failed to load assets verifier: 0
12-28 20:42:16.971 1212 2026 E Watchdog: !@Sync 39 [12-28 20:42:16.982]

i have see zzag.class inside play-services-measurement-18.0.0.jar library but same error is coming from device logs :thinking:

How are you including this library in your extension? Are there any linker issues reported in the logs when you install the app on your device? Have you gotten all of the dependency libraries as we do not include Google Play Services in App Inventor?

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.