我正在为我的应用程序使用改装
、Dagger
和Glide
。迁移到androidX
后,kapt
,与Dagger和Glide注释处理器完美配合。然而,当我运行应用程序时,我在ApiService接口中得到了Kotlin编译器异常,在那里我使用了改型注释
ApiService.kt
import retrofit2.Call
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
import retrofit2.http.Query
interface ApiService {
@GET("/popular")
fun getPopular(@Query("lang") lang: String = LANGUAGE): Call<...>
...
companion object {
val STATUS_OK = "ok"
var LANGUAGE = "en"
fun create(): ApiService {
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(...)
.build()
return retrofit.create(ApiService::class.java);
}
}
build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 'android-P'
buildToolsVersion '28.0.0-rc2'
defaultConfig {
applicationId "..."
minSdkVersion 17
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android:flexbox:0.3.2'
implementation 'com.google.dagger:dagger:2.16'
kapt 'com.google.dagger:dagger-compiler:2.16'
implementation "androidx.lifecycle:lifecycle-runtime:2.0.0-alpha1"
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1"
implementation 'com.github.rubensousa:gravitysnaphelper:1.5'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.github.bumptech.glide:glide:4.7.1'
kapt 'com.github.bumptech.glide:compiler:4.7.1'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.0'
implementation 'com.google.android.material:material:1.0.0-alpha1'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation "com.squareup.retrofit2:converter-gson:2.4.0"
implementation 'androidx.cardview:cardview:1.0.0-alpha1'
implementation 'androidx.recyclerview:recyclerview:1.0.0-alpha1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
}
例外情况:
不存在的类不能转换为批注@error。不存在类()
我试过根据文件使用这个
kapt {
correctErrorTypes = true
}
但这导致了另一个例外
java.lang.ClassCastException:
我认为,第一个异常的出现是因为在用kapt插件更新gradle和android studio之后,它突然开始用NonExistentClass声明未知的翻新Java注释(没有任何kapt或annotationProcessor用于翻新,正如你在build.gradle中看到的)。我不知道第二个错误是什么意思。
我发现gradle.properties将android.enableJetifier
设置为false可以修复编译错误。我在问题跟踪器中提交了一个错误。
我正试图迁移到AndroidX,我们在我们的项目中使用这个库。然而,这目前在我们的项目中引起了一个问题: 无法解析对“module @ build type/compile class path”的依赖项:无法使用转换JetifyTransform转换文件“localytics-1.3.0.aar”以匹配属性{artifactType=processed-aar} 删除库会使此问题消失。在这个库被
问题内容: 我正在尝试迁移到androidx。我在Android Studio中使用了迁移工具。当我执行此操作时,我在运行应用程序时得到以下堆栈跟踪。 例外是正确的。android.support.v4.content.FileProvider在我的应用中不存在。但是androidx.core.content.FileProvider包含在我的应用程序中。最大的问题是为什么它要加载旧版本的File
我刚刚通过Android Studio菜单选项Refactor->Refactor to androidx迁移到androidx 我得到以下错误: Android.View.InflateException:二进制XML文件行#2:二进制XML文件行#2:膨胀类AndroidX.ConstraintLayout.ConstraintLayout时出错 知道吗? 堆栈跟踪:
本文向大家介绍Android AndroidX的迁移,包括了Android AndroidX的迁移的使用技巧和注意事项,需要的朋友参考一下 1. 前言 AndroidX replaces the original support library APIs with packages in the androidx namespace. Only the package and Maven arti
当我尝试启动我的应用程序时,我的 MainActivity 在 oncreate() 方法中的“setContentView(R.layout.activity_main);” 中抛出此错误: 这个错误出现在迁移到androidx之后,经过进一步检查,我注意到Bottomnavigationview类中的导入语句已经过时(没有androidx格式,而是旧格式)。Bottomnavigationvi
我的项目在我迁移到AndroidX后无法构建,错误日志显示< code > error:package Android . support . annotation不存在在一些类中,但是这些类不能被编辑,当我编辑这些类并重新构建时,这些将被恢复。当打开这些类时会显示< code >文件是在" build "文件夹下生成的,不应该被编辑。并且当编辑这些类时会显示< code >生成的源文件不应该被编