AndroidX'e geçiş tavşan deliği aşağı gitti ...
Geçişi neredeyse tamamladım, ancak bir hatayla karşılaştığımda geçmiş gibi görünmüyorum.
Zaten denedim Clean & RebuildveInvalidate Caches / Restart
Bir şey tanınmayan R.java dosyasına @Deprecated enjekte ediyor gibi görünüyor.
Uygulamanın build.gradledosyası uzun, ancak alakalı bölümler (alakalı ise daha fazla yayın gönderebilir):
android {
compileSdkVersion 29
defaultConfig {
minSdkVersion 17
targetSdkVersion 29
}
compileOptions {
dataBinding {
enabled = true
}
}
dependencies {
...
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.2.0-alpha01'
def rxlifecycleVersion = "3.1.0"
implementation "io.reactivex.rxjava3:rxjava:3.0.0-RC4"
implementation "com.trello.rxlifecycle3:rxlifecycle:$rxlifecycleVersion"
implementation "com.trello.rxlifecycle3:rxlifecycle-kotlin:$rxlifecycleVersion"
implementation "com.trello.rxlifecycle3:rxlifecycle-android:$rxlifecycleVersion"
implementation "com.trello.rxlifecycle3:rxlifecycle-components:$rxlifecycleVersion"
implementation(name: 'SectionCursorAdapter-3.0.0', ext: 'aar')
implementation 'com.nextfaze.poweradapters:power-adapters:0.24.1'
implementation 'com.nextfaze.poweradapters:power-adapters-data:0.24.1'
implementation 'com.nextfaze.poweradapters:power-adapters-recyclerview-v7:0.24.1'
implementation 'com.nextfaze.poweradapters:power-adapters-support-v4:0.24.1'
...
}
}
Kotlin derleyicisinden bir dizi hata alıyorum
e: /.../R.java:6187: error: incompatible types: Deprecated cannot be converted to Annotation
@Deprecated
^
e: /.../R.java:28468: error: incompatible types: Deprecated cannot be converted to Annotation
@Deprecated
^
e: /.../R.java:28882: error: incompatible types: Deprecated cannot be converted to Annotation
@Deprecated
^
e: java.lang.IllegalStateException: failed to analyze: java.lang.NullPointerException
at org.jetbrains.kotlin.analyzer.AnalysisResult.throwIfError(AnalysisResult.kt:56)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:182)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:164)
at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:54)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:84)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:42)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:104)
at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1558)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
at sun.rmi.transport.Transport$1.run(Transport.java:200)
at sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:834)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:688)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:687)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
at android.databinding.annotationprocessor.ProcessDataBinding.getSupportedOptions(ProcessDataBinding.java:219)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.getSupportedOptions(incrementalProcessors.kt)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.createDependencyCollector(incrementalProcessors.kt:44)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.access$createDependencyCollector(incrementalProcessors.kt:22)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor$dependencyCollector$1.invoke(incrementalProcessors.kt:24)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor$dependencyCollector$1.invoke(incrementalProcessors.kt:22)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProcessor.getRuntimeType(incrementalProcessors.kt:69)
at org.jetbrains.kotlin.kapt3.base.incremental.IncrementalAptCache.updateCache(IncrementalAptCache.kt:26)
at org.jetbrains.kotlin.kapt3.base.incremental.JavaClassCacheManager.updateCache(cache.kt:22)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:87)
at org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:35)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:230)
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:188)
at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:99)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:96)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:106)
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:81)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:555)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:82)
at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:107)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:546)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:177)
... 23 more
R.java olan bağlantılar
Projemde titleMarginshiçbir yerde kullanmadım. Bir arama yaptığımda, @Deprecateddeğerler yalnızca Android sdk ve içinde bulunan com.google.android.materialyapay nesnelerde gösterilir .gradle/caches/. Bu klasörü silmeyi denedim ve her derleme ile tekrar görünüyor.
Veri bağlama ile ilgili bir şey olduğunu düşünüyorum, ama günlerdir buradayım ve bir neden bulamıyorum.
Burada bulduğum belirli ek açıklama işlemci dosyasının kaynağı: ProcessDataBinding.java
Güncelleme 1
AndroidX'e Geçişin Gerçekliği hakkındaki bu harika makale, Android X'in jetleme aracının üretilen kodu işlemediğini açıklıyor . Birlikte konularla ilgilenen diğer ilgili SO mesajları gördük ButterKnife, Daggervb, ama biz bunlardan herhangi birini kullanarak değiliz. Birkaç veri bağlama ve derlenmiş kitaplık kullanıyoruz, ancak hangisinin kötü referansların kaynağı olduğundan emin değilim. Benim sorum şu oluşturulan kodun kaynağını nasıl bulabilir ve düzeltebilirim?
Güncelleme 2
Orijinal AndroidX öncesi projesine geri dönersek, bu hata aslında destek kitaplığını 28'e yükseltirken ortaya çıkar.
implementation "com.android.support:appcompat-v7:27.1.1"
için
implementation "com.android.support:appcompat-v7:28.0.0"
derleme hatasını tetikler.
Bir kırıntı izi sonra bu sorun izci rastladım: Databinding v2, ilişkili olabilecek başka bir ek açıklama işlemcisi başarısız olduğunda hatalar üretir , ancak yine de nasıl düzeltileceğinden emin değilim.
DeprecatedR.java için bir ithalat beyanı var mı ?
