urbanairship / airship-flutter

Flutter integration
Other
17 stars 17 forks source link

NoClassDefFoundError. #144

Closed k1r3zz closed 1 year ago

k1r3zz commented 1 year ago

flutter version 3.3.4 airship_flutter 6.1.0

android version under 7 alawys crash

Fatal Exception: Java. lang.NoClassDefFoundError Failed resolution of: Lcom/urbanairship/iam/InAppMessageActivity; com.urbanairship.lam.modal. ModalAdapter.newAdapter (ModalAdapter java:37) com.urbanairship.lam.modal.ModalAdapterFactory. createAdapter (ModalAdapterFactory java:18) com.urbanairship.lam.InAppMessageManager.createAdapterWrapper(InAppMessageManager.java:540) com.urbanairship.iam.InAppMessageManager.onPrepare(InAppMessageManagerjava:264) com.urbanairship.automation.InAppMessageScheduleDelegate.onPrepareSchedule(InAppMessageScheduleDelegate.java:39) com.urbanairship. automation.InAppMessageScheduleDelegate.onPrepareSchedule (InAppMessageScheduleDelegate.java: 16) com.urbanairship.automation.InAppAutomation. prepareSchedule (InAppAutomation.java:588) com.urbanairship.automation.InAppAutomation.lambdaSonPrepareSchedule$4$InAppAutomation(InAppAutomation.java:565) com.urbanairship.automation.-S$LambdaSinAppAutomation$ZaYl-wy944HuRn6g3czKz0KnJ-Q.run(lambda) com.urbanairship.util. RetryingExecutor$Chained@perations.run (RetryingExecutor.java:205) com.urbanairship.util.RetryingExecutor$1.run (RetryingExecutor. java:126) com.urbanairship.til.SerialExecutor$1.run (SerialExecutor.java:41) java.util concurrent. ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133) java. util concurrent. ThreadPoo/ExecutorSWorker.run (ThreadPoolExecutor java:607) com.urbanairship.util. AirshipThreadFactory$1.run (Airship ThreadFactory java:50) lava.lang. Thread.run (Thread java.762)

Caused by java.lang.ClassNotFoundException Didn't find class com.urbanairship.lam.InAppMessageActivity" on path: DexPathList[[zip file /data/app/com.app.androld.qw.readink-1/base.apk", zip file /data/app/com.app.android.qw.readink-1/split_config.arm64_v8a.apk', zip file/data/app/com.app.android.qw.re adink-1/split_config.en.apk', zip file /data/app/com.app.android.qw.readink-1/split_config.xxxhdpi.apk', zip file /data/user/0/com.ap p.android.qw.readink/.sagittarius/1/1.jar',zipfile/data/user/0/com.app.android.qw.readink/.sagittarlus/1/2-jar",zipfile/data/user/ 0/com.app.android. qw.readink/.sagittarius/1/3.jar*, zip file /data/user/0/com.app.androld.qw.readink/.sagittarius/1/4,jarl.nativel.ibr aryDirectories=//data/app/com.app.android.qw.readink-1/lib/arm64,/data/app/com.app.androld.qw.readink-1/base.apk!/lib/arm64-v 8a, /data/app/com.app.android.qw.readink-1/split_config.arm64_v8a.apk/lib/arm64-v8a,/data/app/com.app.android.qw.readink-1/s plit_config.en.apk!/lib/arm64-v8a,/data/app/com.app.android.qw.readink-1/split_config.xxxhdpi.apkl/lib/arm64-v8a,/system/lib64,/V endor/lib64]

baoluchuling commented 1 year ago

same question. Looking forward to a sulotion.

Ulrico972 commented 1 year ago

Hello, That error looks like a proguard issue. Could you send us your build.gradle files along with your proguard rules files to verify please ? Also, did you notice the issue on other Android versions or is it specific to under Android 7 versions ?

k1r3zz commented 1 year ago

Hello, That error looks like a proguard issue. Could you send us your build.gradle files along with your proguard rules files to verify please ? Also, did you notice the issue on other Android versions or is it specific to under Android 7 versions ?

hello, We use android default proguard,and this error only occurs under android 7,this is system proguard,and my build.gradle part code proguard-android.txt

defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). minSdkVersion 21 targetSdkVersion 30 versionCode flutterVersionCode.toInteger() versionName flutterVersionName ndk{ abiFilters "armeabi-v7a" ,"arm64-v8a" } multiDexEnabled true

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    debug {
        signingConfig signingConfigs.debugConfig
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
        shrinkResources false
    }
}
Ulrico972 commented 1 year ago

I thought it would be proguard but since the minify is disabled, I doubt it. Could you also send us your proguard-rules.pro file ? I wonder also if it could be related to the multiDex.

Do you want to jump on a call to check the code and do some tests removing the proguard and the multiDex ?

k1r3zz commented 1 year ago

我认为这将是 proguard,但由于 minify 被禁用,我对此表示怀疑。您能否也将您的 proguard-rules.pro 文件发送给我们? 我还想知道它是否与 multiDex 有关。

您是否想立即调用以检查代码并进行一些删除 proguard 和 multiDex 的测试?

minifyEnabled is false and We didn't put proguard-rules.pro,this is system generated code

k1r3zz commented 1 year ago

我认为这将是 proguard,由于缩小被禁止,我表示怀疑。但您也可以将您的 proguard-rules.pro 文件发送给? 我还想知道它是否与 multiDex 有关。

您是否想立即调用以检查代码并进行一些删除 proguard 和 multiDex 的测试?

We found this problem on firebase. Since all the models were below android 7, we did not find this problem on any of our test machines

Ulrico972 commented 1 year ago

Could you share some stats about the crash please ? How many users impacted ? How many occurrences ? Is there a specific kind of devices impacted ?