我无法编译我的Android Kotlin项目。
我不知道这是什么......
Gradle日志:
错误:无法解析以下类的超类型。请确保您在类路径中具有所需的依赖项: class android.support.v7.app.AppCompatActivity,未解析的超类型:SupportParentable
build.gradle(app)
buildscript {
ext.android_plugin_version = "2.3.3"
ext.kotlin_version = '1.1.2-5'
repositories {
maven { url 'https://maven.google.com' }
maven { url "https://jitpack.io" }
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:$android_plugin_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
maven { url 'https://maven.google.com' }
maven { url "https://jitpack.io" }
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
def compat_version = '26.+'
def play_services_version = '11.0.1'
def firebase_version = '9.6.1'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "com.site.app"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["library" : "true"]
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "4g"
}
dataBinding {
enabled true
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
kapt {
generateStubs = true
correctErrorTypes = true
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
// android
compile 'com.android.support:multidex:1.0.1'
compile "com.android.support:appcompat-v7:${compat_version}"
compile "com.android.support:design:${compat_version}"
compile "com.android.support:cardview-v7:${compat_version}"
compile "com.android.support:recyclerview-v7:${compat_version}"
compile "com.android.support:gridlayout-v7:${compat_version}"
compile "com.google.android.gms:play-services:${play_services_version}"
compile "com.google.android.gms:play-services-ads:${play_services_version}"
compile "com.google.android.gms:play-services-maps:${play_services_version}"
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.maps.android:android-maps-utils:0.4+'
kapt "com.android.databinding:compiler:$android_plugin_version"
// kotlin
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
}
答案 0 :(得分:17)
在我的情况下,我有一个库模块,其中包含一个实现Dagger HasActivityInjector
的抽象应用程序类,一个应用程序模块具有对该库的依赖关系以及它自己的(非抽象的)应用程序类,扩展了基本应用程序类。
我的Gradle依赖项是implementation
,因此应用程序模块的应用程序类无法访问它(即使那里没有导入,否则该问题将立即显而易见,因为您将得到“无法解决”错误。解决方法是将匕首implementation
依赖项替换为api
,这也使它们也可用于依赖项模块。
答案 1 :(得分:8)
我通过更改插件调用的顺序来修复它!
<强>的build.gradle 强>
buildscript {
ext.android_plugin_version = '2.3.3'
ext.kotlin_version = '1.1.3-2'
repositories {
jcenter()
mavenCentral()
maven { url "https://maven.google.com" }
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
}
dependencies {
classpath "com.android.tools.build:gradle:$android_plugin_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
classpath 'io.fabric.tools:gradle:1.+'
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
maven { url "https://maven.google.com" }
maven { url 'https://maven.fabric.io/public' }
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
应用/的build.gradle 强>
apply plugin: 'com.android.application'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
applicationId "com.sample.app"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
debug {
ext.alwaysUpdateBuildId = false
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "4g"
}
dataBinding {
enabled true
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
abortOnError false
disable 'InvalidPackage'
}
}
kapt {
generateStubs = true
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
// kotlin
kapt "com.android.databinding:compiler:$android_plugin_version"
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
// android
compile 'com.android.support:multidex:1.0.1'
compile "com.android.support:appcompat-v7:${compat_version}"
compile "com.android.support:design:${compat_version}"
compile "com.android.support:cardview-v7:${compat_version}"
compile "com.android.support:recyclerview-v7:${compat_version}"
compile "com.android.support:gridlayout-v7:${compat_version}"
compile "com.android.support:support-vector-drawable:${compat_version}"
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile "com.google.android.gms:play-services-ads:${play_services_version}"
compile "com.google.android.gms:play-services-maps:${play_services_version}"
compile "com.google.android.gms:play-services-gcm:${play_services_version}"
compile 'com.google.maps.android:android-maps-utils:0.4+'
// fabric
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
// logger
compile 'com.orhanobut:logger:2.1.1'
// dexter
compile 'com.karumi:dexter:4.1.0'
// firebase
compile "com.google.firebase:firebase-messaging:${firebase_version}"
// persistence
compile "android.arch.persistence.room:runtime:1.0.0-alpha3"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0-alpha3"
// facebook
compile 'com.facebook.android:facebook-android-sdk:4.+'
// retrofit
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
// gson
compile 'com.google.code.gson:gson:2.8.1'
// jobs
compile 'com.evernote:android-job:1.1.11'
// chart
compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
// fresco
compile 'com.facebook.fresco:fresco:1.3.0'
// indicator
compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
}
答案 2 :(得分:2)
我通过从 dagger hilt
和 java(generated)
我的项目中删除与 rebuild
相关的文件解决了我的问题
答案 3 :(得分:1)
对我来说,问题是子模块未使用AndroidX Activity。我想班级名称发生冲突。
添加了此内容来解决:
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
答案 4 :(得分:0)
就我而言,我必须在主模块上添加所需的依赖项,并使用以下命令编译最新版本:
android {
configurations.all {
resolutionStrategy.force "com.squareup.picasso:picasso:${picassoVersion}"
}
}
答案 5 :(得分:0)
将您的google play gradle版本更新到最新版本
答案 6 :(得分:0)
在尝试任何其他操作之前,请尝试: Android Studio->文件->使缓存/重启无效
这对我有用。
答案 7 :(得分:0)
在应用程序级别build.gradle中,低于lib时出现错误
implementation 'com.google.firebase:firebase-iid:20.0.2'
所以解决方案是项目级别build.gradle中的订单,所以 在解决错误之前,结构是
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
mavenCentral()
maven {
url "https://maven.google.com"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
classpath 'com.google.gms:google-services:4.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven {
url "https://maven.google.com" // Google's Maven repository
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
解决错误后,结构为:
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
maven {
url "https://maven.google.com"
}
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.3'
classpath 'com.google.gms:google-services:4.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven {
url "https://maven.google.com" // Google's Maven repository
}
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
默认情况下,它会尝试使用google()进行下载,因为它首先出现在序列中,但是当我们将maven放在首位时,它将再次使用maven创建构建,并且构建成功。干杯:)
答案 8 :(得分:0)
在为我的应用设置crashlytics时,我也使用了“推荐”依赖项,如下所示。但这是导致错误的部分。
np.ravel
删除“分析”行解决了我的问题。
>>> v
array([[2, 2, 3, 3, 4],
[4, 5, 5, 5, 6],
[6, 7, 7, 8, 8],
[9, 9, 9, 9, 9]])
>>> v1 = v.ravel() #flattened the array
>>> v1.sort() # sorted that.
>>> n = 10 # value of n
>>> v1[:n]
array([2, 2, 3, 3, 4, 4, 5, 5, 5, 6])
希望这对其他人也有帮助,
最佳
答案 9 :(得分:0)
更新您的Android Studio SDK,然后再次运行此项目。.然后,您的问题将得到解决。.
答案 10 :(得分:0)
(App)----- depends ----(library)
就我而言,我没有更改任何依赖项配置,也没有更改顺序。 我必须将本地pojo(模型)jar文件从库模块复制到App。
应用程序在Kotlin中 库在Java中
它是一个错误,我不应该在应用程序和库中安装pojo.jar
答案 11 :(得分:0)
我修复了升级其他库的错误。 当我添加firebase = ads(来自Google adsmob)时,出现了我的错误。 因此,我在firebase-auth(16.0.5)和firebase广告(19.0.1)中发现了冲突。
将Firebase迁移到19.3.0解决了该问题。
答案 12 :(得分:0)
就我而言,我已删除了一个片段中未使用的OnFragmentInteractionListener
:
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
但是,在我的活动中,我没有删除对此OnFragmentInteractionListener
的引用:
public class MainActivity extends AppCompatActivity implements
MyFragment.OnFragmentInteractionListener {
奇怪的是,我收到了上面的“无法解析以下类的超类型” ,没有给出表示未找到OnFragmentInteractionListener
的错误,。
答案 13 :(得分:0)
就我而言,我进入项目结构并将所有Firebase依赖关系更新为最新和最高的依赖关系。目前,这里是实现及其版本:
implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.google.firebase:firebase-database:19.3.1'
implementation 'com.google.firebase:firebase-storage:19.1.1'
implementation 'com.google.firebase:firebase-analytics:17.4.3'
答案 14 :(得分:0)
清理项目并重建它对我有用
答案 15 :(得分:0)
在我的情况下,此错误是随机发生的,通常会在通过Android Studio执行过程中发生。
根本原因是“我的活动”类正在扩展位于另一个嵌套包中的某些接口:
打包电视活动
public class MainActivity implements MyListener {
}
打包tv.activities.error
interface MyListener {
}
因此,它通常在执行过程中发生,但是在第二次运行后它会自动解决,因此没有人会去解决它。有时,Android Studio无法识别出可访问的界面,因此对于相同的界面没有任何显示错误的感觉:
Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:
class tv.activities.MainActivity, unresolved supertypes: MyListener
最终解决方案:
公开界面可以永久解决此问题。
public interface MyListener {
}
或在AS不会混淆的地方重构软件包的可访问性