iT邦幫忙

0

[開發筆記] [Android][Update Kotlin Version] [Update SDK Version] 所遇到 Build 的 Error 與 Fix 步驟

  • 分享至 

  • xImage
  •  

前言

每個 Android Developer 都會遇到要升級 Android SDKKotlin Language VersionLibrary 的時候,
而當升級完畢嘗試 Build 一下
沒事就安然度過一天 有事就冷靜處理等升天
當你認爲某個 Error 是這個的關係,嘗試更新 Library Version 後又出現其他 Error,這算還好!
當處理一系列的 Error 後,殊不知又回到一開始的 Error 時,這時腦中就開始想起胡夏 又回到最初的起點~
光這次升級,胡夏就在我腦袋中唱了3、4次那些年,我帶同事作一次又再唱好幾次 ....

再看下去之前先來回顧一下 胡夏的那些年吧 (Yt)!


需求

Update Stripe Library Version
16.0.0 --> 20.8.0

我做過一些 research 如果要升級到20.5.0 - 20.8.0 最基本要同時升級的問題:

Android SDK 31
GradleVersion 5.4.1
KotlinVersion 1.6.0
coding 上修改語法配合API 31

build.gradle新增插件
implementation ‘com.google.dagger:dagger:2.27’
annotationProcessor “com.google.dagger:dagger-compiler:2.27”

升級build.gradle插件:
implementation ‘com.stripe:stripe-android:20.5.0’


Step

更新 Stripe

Maven


Build Exception : The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30).

The minCompileSdk (31) specified in a
dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
is greater than this module's compileSdkVersion (android-30).
Dependency: androidx.appcompat:appcompat:1.4.1.
AAR metadata file: /Users/username/.gradle/caches/transforms-2/files-2.1/5c1f32c78a72902c36b66aa50e7efafb/appcompat-1.4.1/META-INF/com/android/build/gradle/aar-metadata.properties.


更新 SdkVersion

compileSdkVersion = 31
minSdkVersion = 23
targetSdkVersion = 31

Build Exception : Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed

Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
/Users/username/app-name/app/src/main/res/layout/fragment_address_add.xml:107: AAPT: error: resource drawable/ic_arrow (aka com.packageName.appId.uat:drawable/ic_arrow) not found.
    
/Users/username/app-name/app/src/main/res/layout/fragment_address_add.xml:125: AAPT: error: resource drawable/ic_arrow (aka com.packageName.appId.uat:drawable/ic_arrow) not found.
    
/Users/username/app-name/app/src/main/res/layout/fragment_cart_delivery.xml:170: AAPT: error: resource drawable/ic_arrow (aka com.packageName.appId.uat:drawable/ic_arrow) not found.
    
/Users/username/app-name/app/src/main/res/layout/fragment_cart_delivery.xml:187: AAPT: error: resource drawable/ic_arrow (aka com.packageName.appId.uat:drawable/ic_arrow) not found.
    
/Users/username/app-name/app/src/main/res/layout/fragment_cart_delivery.xml:251: AAPT: error: resource drawable/ic_arrow (aka com.packageName.appId.uat:drawable/ic_arrow) not found.
    

更改 drawableId

ic_arrow --> ic_arrow_down

Build Exception


w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:

類路徑中的運行時 JAR 文件應該具有相同的版本。 這些文件在類路徑中找到:

    /Users/username/.gradle/caches/transforms-2/files-2.1/ed1791edcdff7f9300e8883e6f10ce2c/jetified-kotlin-stdlib-jdk8-1.6.10.jar (version 1.6)
    /Users/username/.gradle/caches/transforms-2/files-2.1/d943c03d26b2a6908c45cb49e800fc6d/jetified-kotlin-stdlib-jdk7-1.6.10.jar (version 1.6)
    /Users/username/.gradle/caches/transforms-2/files-2.1/581b1a3ffda168a8ea92dfef7cdb0d9b/jetified-kotlin-reflect-1.4.0.jar (version 1.4)
    /Users/username/.gradle/caches/transforms-2/files-2.1/755fb8ca5be53840e3926c4769461a40/jetified-kotlin-stdlib-1.6.21.jar (version 1.6)
    /Users/username/.gradle/caches/transforms-2/files-2.1/b9f335f68f3f6214cb85ac89109d4285/jetified-kotlin-stdlib-common-1.6.21.jar (version 1.6)
/jetified-kotlin-stdlib-jdk8-1.6.10.jar (version 1.6)
/jetified-kotlin-stdlib-jdk7-1.6.10.jar (version 1.6)
/jetified-kotlin-reflect-1.4.0.jar (version 1.4)
/jetified-kotlin-stdlib-1.6.21.jar (version 1.6)
/jetified-kotlin-stdlib-common-1.6.21.jar (version 1.6)

w: Some runtime JAR files in the classpath have an incompatible version. Consider removing them from the classpath

類路徑中的某些運行時 JAR 文件的版本不兼容。 考慮將它們從類路徑中刪除

/jetified-paymentsheet-20.5.0-api.jar!/META-INF/paymentsheet_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-payments-core-20.5.0-api.jar!/META-INF/payments-core_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-stripe-core-20.5.0-api.jar!/META-INF/stripe-core_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlin-stdlib-1.6.21.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-payments-model-20.5.0-api.jar!/META-INF/payments-model_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/navigation-runtime-2.4.2-api.jar!/META-INF/navigation-runtime_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlinx-coroutines-core-jvm-1.6.1.jar!/META-INF/kotlinx-coroutines-core.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlin-stdlib-common-1.6.21.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlinx-coroutines-android-1.6.1.jar!/META-INF/kotlinx-coroutines-android.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/navigation-common-2.4.2-api.jar!/META-INF/navigation-common_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlin-stdlib-jdk7-1.6.10.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlin-android-extensions-runtime-1.6.10.jar!/META-INF/kotlin-android-extensions-runtime.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

/jetified-kotlin-stdlib-jdk8-1.6.10.jar!/META-INF/kotlin-stdlib-jdk8.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.1.

更新 Kotlin Version

The binary version of its metadata is 1.6.0, expected version is 1.4.1.

嘗試將 Kotlin 版本更新至 1.6 版本

而使用 Depedencies 有使用 kotlin version 的插件為

implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

Maven

ext.kotlin_version = '1.4.21'

嘗試改為

ext.kotlin_version = '1.6.21'

Build Exception : A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction

> Task :app:kaptUatDebugKotlin
/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/di/AssistedInjectModule.java:7: error: cannot find symbol
@dagger.Module(includes = {AssistedInject_AssistedInjectModule.class})
                           ^
  symbol: class AssistedInject_AssistedInjectModule
Note: [1] Wrote GeneratedAppGlideModule with: [com.bumptech.glide.integration.okhttp3.OkHttpLibraryGlideModule]

> Task :app:kaptUatDebugKotlin FAILED

Execution failed for task ':app:kaptUatDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

AssistedInjectModule

package com.packageName.appId.di;

import java.lang.System;

@com.squareup.inject.assisted.dagger2.AssistedModule()
@kotlin.Metadata(mv = {1, 6, 0}, k = 1, d1 = {"\u0000\f\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\b\'\u0018\u00002\u00020\u0001B\u0005\u00a2\u0006\u0002\u0010\u0002\u00a8\u0006\u0003"}, d2 = {"Lcom/packageName/appId/di/AssistedInjectModule;", "", "()V", "app_uatDebug"})
@dagger.Module(includes = {AssistedInject_AssistedInjectModule.class})
public abstract class AssistedInjectModule {
    
    public AssistedInjectModule() {
        super();
    }
}

AssistedInjectModule 跟 com.squareup.inject.assisted.dagger2.AssistedModule 有關係

//  Dependency Injection
compileOnly "com.squareup.inject:assisted-inject-annotations-dagger2:$rootProject.assistedInjectVersion"
kapt "com.squareup.inject:assisted-inject-processor-dagger2:$rootProject.assistedInjectVersion"

更新 Assisted Inject Dagger 2

assistedInjectVersion = '0.5.2'
更新為

assistedInjectVersion = '0.7.0'

Maven

Rebuild

> Task :app:kaptUatDebugKotlin FAILED
/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/di/AssistedInjectModule.java:7: error: cannot find symbol
@dagger.Module(includes = {AssistedInject_AssistedInjectModule.class})
                           ^
  symbol: class AssistedInject_AssistedInjectModule
Note: [1] Wrote GeneratedAppGlideModule with: [com.bumptech.glide.integration.okhttp3.OkHttpLibraryGlideModule]

Execution failed for task ':app:kaptUatDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.



恢復 Assisted Inject Dagger 2

assistedInjectVersion = '0.7.0'

恢復為

assistedInjectVersion = '0.5.2'

comment

//    implementation('com.github.bumptech.glide:glide:$rootProject.glideVersion') {
//        exclude group: "com.android.support"
//    }

更新 Glide

跟這個沒關係

glideVersion = '4.11.0'

更新為

glideVersion = '4.12.0'

Rebulid

沒有了

Note: [1] Wrote GeneratedAppGlideModule with: [com.bumptech.glide.integration.okhttp3.OkHttpLibraryGlideModule]

但還是報錯

/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/di/AssistedInjectModule.java:7: error: cannot find symbol
@dagger.Module(includes = {AssistedInject_AssistedInjectModule.class})
                           ^
  symbol: class AssistedInject_AssistedInjectModule

FAILURE: Build completed with 3 failures.


Build Exception : Caused by: java.lang.IllegalStateException: Could not parse metadata! This should only happen if you're using Kotlin <1.1.

Caused by: java.lang.IllegalStateException: Could not parse metadata! This should only happen if you're using Kotlin <1.1.
	at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.readKotlinClassMetadata(KotlinPoetMetadata.kt:83)
	at com.squareup.moshi.kotlinpoet.metadata.KotlinPoetMetadata.toImmutableKmClass(KotlinPoetMetadata.kt:113)
	at com.squareup.moshi.kotlin.codegen.MoshiCachedClassInspector.toImmutableKmClass(MoshiCachedClassInspector.kt:22)
Caused by: java.lang.IllegalStateException: Could not parse metadata! This should only happen if you're using Kotlin <1.1.

	at com.squareup.moshi.kotlin.codegen.MetadataKt.targetType(metadata.kt:126)
	at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.adapterGenerator(JsonClassCodegenProcessor.kt:146)
	at com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor.process(JsonClassCodegenProcessor.kt:115)
	at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
	at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:188)
	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
	... 38 more

有可能是 Dagger 的問題

This is due to Dagger's use of older version of kotlinx-metadata-jvm. See https://youtrack.jetbrains.com/issue/KT-45885

Update your dagger to 2.34

更新 Moshi Version

目前為 MoshiVersion = 1.10.0

Maven

MoshiVersion 更新為 1.3.0


Build Exception : ailed to transform moshi-1.13.0.jar to match attributes

Execution failed for task ':app:checkDevDebugDuplicateClasses'.
> Could not resolve all files for configuration ':app:devDebugRuntimeClasspath'.
   > Failed to transform moshi-1.13.0.jar (com.squareup.moshi:moshi:1.13.0) to match attributes {artifactType=enumerated-runtime-classes, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=8, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}.
      > Execution failed for JetifyTransform: /Users/username/.gradle/caches/modules-2/files-2.1/com.squareup.moshi/moshi/1.13.0/da685586facab9eb5c4fb630ce248be14e7da21b/moshi-1.13.0.jar.
         > Failed to transform '/Users/username/.gradle/caches/modules-2/files-2.1/com.squareup.moshi/moshi/1.13.0/da685586facab9eb5c4fb630ce248be14e7da21b/moshi-1.13.0.jar' using Jetifier. Reason: IllegalArgumentException, message: Unsupported class file major version 60. (Run with --stacktrace for more details.)
           Suggestions:
            - Check out existing issues at https://issuetracker.google.com/issues?q=componentid:460323&s=modified_time:desc, it's possible that this issue has already been filed there.
            - If this issue has not been filed, please report it at https://issuetracker.google.com/issues/new?component=460323 (run with --stacktrace and provide a stack trace if possible).

app:checkDevDebugDuplicateClasses


更新 Gradle 版本

Maven


AndroidLintAnalysisTask IllegalArgumentException warning because unsupported class files in META-INF


Build Exception : Manifest merger failed with multiple errors, see logs

Execution failed for task ':app:processDevDebugMainManifest'.
> Manifest merger failed with multiple errors, see logs
Merging Errors: Warning uses-permission#com.google.android.gms.permission.AD_ID was tagged at AndroidManifest.xml:17 to remove other declarations but no other declaration present android.app main manifest (this file), line 16 Error: android:exported needs to be explicitly specified for element <activity#com.onesignal.NotificationOpenedActivityHMS>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 77 Error: android:exported needs to be explicitly specified for element <receiver#com.onesignal.GcmBroadcastReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 56 Error: android:exported needs to be explicitly specified for element <receiver#com.onesignal.BootUpReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 108 Error: android:exported needs to be explicitly specified for element <receiver#com.onesignal.UpgradeReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 114

新增 android:exported 在 Manifests 的 activity 中

Error: android:exported needs to be explicitly specified for element <activity#com.onesignal.NotificationOpenedActivityHMS>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 77 Error: android:exported needs to be explicitly specified for element <receiver#com.onesignal.GcmBroadcastReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 56 Error: android:exported needs to be explicitly specified for element <receiver#com.onesignal.BootUpReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 108 Error: android:exported needs to be explicitly specified for element <receiver#com.onesignal.UpgradeReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details. android.app main manifest (this file), line 114 

更新 oneSignal

Android 版本

oneSignal 版本

更新為 4.6.7


Build Exception : Caused by: java.lang.IllegalStateException: Unsupported metadata version. Check that your Kotlin version is >= 1.0

/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/di/AssistedInjectModule.java:7: error: cannot find symbol
@dagger.Module(includes = {AssistedInject_AssistedInjectModule.class})
                           ^
  symbol: class AssistedInject_AssistedInjectModule
Note: [1] Wrote GeneratedAppGlideModule with: [com.bumptech.glide.integration.okhttp3.OkHttpLibraryGlideModule]

FAILURE: Build completed with 3 failures.
Caused by: java.lang.IllegalStateException: Unsupported metadata version. Check that your Kotlin version is >= 1.0

	at com.google.common.collect.SingletonImmutableBiMap.forEach(SingletonImmutableBiMap.java:66)
	at dagger.internal.codegen.validation.TypeCheckingProcessingStep.process(TypeCheckingProcessingStep.java:48)
	at dagger.internal.codegen.ModuleProcessingStep.process(ModuleProcessingStep.java:104)
	at dagger.internal.codegen.ModuleProcessingStep.process(ModuleProcessingStep.java:59)
	at dagger.internal.codegen.statistics.DaggerStatisticsCollectingProcessingStep.process(DaggerStatisticsCollectingProcessingStep.java:52)
	at dagger.shaded.auto.common.BasicAnnotationProcessor$ProcessingStepAsStep.process(BasicAnnotationProcessor.java:495)
	at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:228)
	at dagger.shaded.auto.common.BasicAnnotationProcessor.process(BasicAnnotationProcessor.java:208)
	at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.process(incrementalProcessors.kt:90)
	at org.jetbrains.kotlin.kapt3.base.ProcessorWrapper.process(annotationProcessing.kt:188)
	at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:980)
	... 41 more

更新 Dagger

dependencies {
    ...
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.0"
    classpath "com.google.dagger:hilt-android-gradle-plugin:2.42"
}

com.google.dagger Maven


更新為 2.42

更新完 Build


Build Exception : ModuleProcessingStep was unable to process 'com.packageName.appId.viewmodels.MainViewModel' because '' could not be resolved.

> Task :app:kaptUatDebugKotlin
/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/viewmodels/MainViewModel.java:5: error: cannot find symbol
@dagger.hilt.InstallIn(value = {ApplicationComponent.class})
                                ^
  symbol: class ApplicationComponent
/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/di/AssistedInjectModule.java:7: error: cannot find symbol
@dagger.Module(includes = {AssistedInject_AssistedInjectModule.class})
                           ^
  symbol: class AssistedInject_AssistedInjectModule
error: [Hilt]
  @InstallIn, 'value' class is invalid or missing: @dagger.hilt.InstallIn({<error>})
  [Hilt] Processing did not complete. See error above for details.
Note: [1] Wrote GeneratedAppGlideModule with: [com.bumptech.glide.integration.okhttp3.OkHttpLibraryGlideModule]
[Hilt]

/Users/username/app-name/app/build/tmp/kapt3/stubs/uatDebug/com/packageName/appId/di/AssistedInjectModule.java:8: error: @AssistedModule's @Module must include AssistedInject_AssistedInjectModule
public abstract class AssistedInjectModule {
                ^
error: ModuleProcessingStep was unable to process 'com.packageName.appId.viewmodels.MainViewModel' because '<error>' could not be resolved.
  
  Dependency trace:
      => element (CLASS): com.packageName.appId.viewmodels.MainViewModel
      => annotation: @dagger.hilt.InstallIn("<error>")
ModuleProcessingStep was unable to process 'com.packageName.appId.viewmodels.MainViewModel' because '<error>' could not be resolved.

      => annotation method: java.lang.Class<?>[] value()
      => annotation value (ARRAY): value '<error>' with expected type java.lang.Class<?>[]
      => annotation value (STRING): value '<error>' with expected type java.lang.Class<?>
  
  If type '<error>' is a generated type, check above for compilation errors that may have prevented the type from being generated. Otherwise, ensure that type '<error>' is on your classpath.
error: ModuleProcessingStep was unable to process 'com.packageName.appId.di.AssistedInjectModule' because '<error>' could not be resolved.
  
ModuleProcessingStep was unable to process 'com.packageName.appId.di.AssistedInjectModule' because '<error>' could not be resolved.

  Dependency trace:
      => element (CLASS): com.packageName.appId.di.AssistedInjectModule
      => annotation: @dagger.Module(includes = "<error>")
      => annotation method: java.lang.Class<?>[] includes()
      => annotation value (ARRAY): value '<error>' with expected type java.lang.Class<?>[]
      => annotation value (STRING): value '<error>' with expected type java.lang.Class<?>
  
  If type '<error>' is a generated type, check above for compilation errors that may have prevented the type from being generated. Otherwise, ensure that type '<error>' is on your classpath.


更新 androidx.hilt

就沒有然後了

tags: Development Note Android Update Kotlin Update SDK Update Library

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言