pardom-zz / ActiveAndroid

Active record style SQLite persistence for Android
http://www.activeandroid.com
4.7k stars 1.03k forks source link

NoClassDefFoundError: WearableActivityController$AmbientCallback; #574

Open Stardust077 opened 3 years ago

Stardust077 commented 3 years ago

Hello,

I am completely new to Android development and wanted to use ActiveAndroid in my app. I tried to install it following the documentation, like this:

`<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.inventorymanagement">

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-feature android:name="android.hardware.type.watch" />

<application

    ...

    android:name="com.activeandroid.app.Application"
    >

    <meta-data android:name="AA_DB_NAME" android:value="cardelli_db" />
    <meta-data android:name="AA_DB_VERSION" android:value="5" />

    ...

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.InventoryManagement.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

`

I also dragged the .jar to my libs folder and imported the library. Android Studio finds the annotations when I try to use them.

However, when I start the app, I get a "NoClassDefFoundError". Please see below

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.inventorymanagement, PID: 26940 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/wearable/compat/WearableActivityController$AmbientCallback; at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at com.activeandroid.ReflectionUtils.getParsers(ReflectionUtils.java:158) at com.activeandroid.Registry.initialize(Registry.java:100) at com.activeandroid.ActiveAndroid.initialize(ActiveAndroid.java:8) at com.activeandroid.app.Application.onCreate(Application.java:9) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712) at android.app.ActivityThread.access$1300(ActivityThread.java:237) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.wearable.compat.WearableActivityController$AmbientCallback" on path: DexPathList[[zip file "/data/app/9pvbFFebYtBtO7MtdDhYbA==/com.example.inventorymanagement-I8glsXyrufwz-48YcKB0QQ==/base.apk"],nativeLibraryDirectories=[/data/app/9pvbFFebYtBtO7MtdDhYbA==/com.example.inventorymanagement-I8glsXyrufwz-48YcKB0QQ==/lib/x86, /system/lib, /system_ext/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at java.lang.Class.classForName(Native Method)  at java.lang.Class.forName(Class.java:454)  at com.activeandroid.ReflectionUtils.getParsers(ReflectionUtils.java:158)  at com.activeandroid.Registry.initialize(Registry.java:100)  at com.activeandroid.ActiveAndroid.initialize(ActiveAndroid.java:8)  at com.activeandroid.app.Application.onCreate(Application.java:9)  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1192)  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6712)  at android.app.ActivityThread.access$1300(ActivityThread.java:237)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:223)  at android.app.ActivityThread.main(ActivityThread.java:7656)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)  I/Process: Sending signal. PID: 26940 SIG: 9

It looked like a dependency is missing. "AndroidActivityController" is appearently part of AndroidWear. I tried adding the dependency stated there by adding "implementation "androidx.wear:wear:1.2.0-alpha03"" to my build.gradle, but no help.

I searched on the web for this but could not find anything. Any help is much appreciated!

Best regards.

azizimusa commented 10 months ago

Do you add ActiveAndroid into proguard?