Android 尝试学习 JUnit 测试时出现 Studio 依赖性(?)问题 - 此处为初学者
Android Studio dependency(?) problem while trying to learn JUnit testing - Beginner here
我正在学习 Android 开发,为期 12 个月的在线学习。在基础知识之后,我的实际主题是调试。我跟着我的学习material开始了第一个简单的JUnit测试。我创建了本月书中提到的 run/debug 配置(即使布局略有变化)。
然后我只是 运行 JUnit 配置。不幸的是我得到了一堆错误:
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: C:\Users\there\.gradle\caches\transforms-3c35e9ced6058ee9ee419dce8130dd8e\transformed\appcompat-1.4.1\META-INF\com\android\build\gradle\aar-metadata.properties.
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-resources:1.4.1.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-36e9ba54d02d4f62b341e20ec0fc392\transformed\jetified-appcompat-resources-1.4.1\META-INF\com\android\build\gradle\aar-metadata.properties.
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.emoji2:emoji2-views-helper:1.0.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3c5e58b62ef26f85c19a76a46373f767\transformed\jetified-emoji2-views-helper-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.emoji2:emoji2:1.0.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3bbdb4c704f0c6ef69f85fd6941d5d8\transformed\jetified-emoji2-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.core:core:1.7.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3\fb3270031bd107031c21c5dc13d9e5ef\transformed\core-1.7.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.lifecycle:lifecycle-process:2.4.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3fb03f7868607ff1baa13fa3ab998ab\transformed\jetified-lifecycle-process-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.lifecycle:lifecycle-runtime:2.4.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3\f5b1cf69ca8682e4d6b881300287a614\transformed\lifecycle-runtime-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties.
我没有更改任何设置或其他内容。我现在太了解配置文件了。
我试图通过google找到解决方案。所以我尝试打开“模块设置”。转到“依赖项”并将选项“core-ktx”从 1.7 更改为 1.6。之后我重建项目。但是什么都没有改变。
有人会如此友好地向我解释问题并建议我解决方案吗?我可以而且也许会联系我的课程“远程老师”,因为如果不解决这个问题我就无法继续。但是等待答案可能需要更长的时间,我想继续。
非常感谢!
此致!
如错误所说,一个依赖(这里:androidx.appcompat:appcompat:1.4.1
)需要至少31的SDK。
您的项目似乎至少需要 SDK 30。
两者之间的冲突是由于带有 SDK 30 的设备造成的。例如他们将 运行 与 30,依赖性可能 运行,因为它是较新的版本。
由于向后兼容,相反的情况是允许的。这就是为什么有些人用非常低的 SDK 制作 API,这是为了防止这类问题。
要解决这个问题,您可以:
- 继续使用 SDK 30,找到一个需要 SDK 30 而不是 31 的旧版本。1.4.0 似乎可以,所以你可以使用
androidx.appcompat:appcompat:1.4.0
。
- 至少使用 SDK 31 作为最低编译 SDK。这会破坏一些设备支持,但也允许您使用一些新功能。
我正在学习 Android 开发,为期 12 个月的在线学习。在基础知识之后,我的实际主题是调试。我跟着我的学习material开始了第一个简单的JUnit测试。我创建了本月书中提到的 run/debug 配置(即使布局略有变化)。 然后我只是 运行 JUnit 配置。不幸的是我得到了一堆错误:
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: C:\Users\there\.gradle\caches\transforms-3c35e9ced6058ee9ee419dce8130dd8e\transformed\appcompat-1.4.1\META-INF\com\android\build\gradle\aar-metadata.properties.
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-resources:1.4.1.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-36e9ba54d02d4f62b341e20ec0fc392\transformed\jetified-appcompat-resources-1.4.1\META-INF\com\android\build\gradle\aar-metadata.properties.
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.emoji2:emoji2-views-helper:1.0.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3c5e58b62ef26f85c19a76a46373f767\transformed\jetified-emoji2-views-helper-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.emoji2:emoji2:1.0.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3bbdb4c704f0c6ef69f85fd6941d5d8\transformed\jetified-emoji2-1.0.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.core:core:1.7.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3\fb3270031bd107031c21c5dc13d9e5ef\transformed\core-1.7.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.lifecycle:lifecycle-process:2.4.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3fb03f7868607ff1baa13fa3ab998ab\transformed\jetified-lifecycle-process-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties.
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.lifecycle:lifecycle-runtime:2.4.0.
AAR metadata file: C:\Users\there\.gradle\caches\transforms-3\f5b1cf69ca8682e4d6b881300287a614\transformed\lifecycle-runtime-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties.
我没有更改任何设置或其他内容。我现在太了解配置文件了。 我试图通过google找到解决方案。所以我尝试打开“模块设置”。转到“依赖项”并将选项“core-ktx”从 1.7 更改为 1.6。之后我重建项目。但是什么都没有改变。
有人会如此友好地向我解释问题并建议我解决方案吗?我可以而且也许会联系我的课程“远程老师”,因为如果不解决这个问题我就无法继续。但是等待答案可能需要更长的时间,我想继续。
非常感谢!
此致!
如错误所说,一个依赖(这里:androidx.appcompat:appcompat:1.4.1
)需要至少31的SDK。
您的项目似乎至少需要 SDK 30。
两者之间的冲突是由于带有 SDK 30 的设备造成的。例如他们将 运行 与 30,依赖性可能 运行,因为它是较新的版本。
由于向后兼容,相反的情况是允许的。这就是为什么有些人用非常低的 SDK 制作 API,这是为了防止这类问题。
要解决这个问题,您可以:
- 继续使用 SDK 30,找到一个需要 SDK 30 而不是 31 的旧版本。1.4.0 似乎可以,所以你可以使用
androidx.appcompat:appcompat:1.4.0
。 - 至少使用 SDK 31 作为最低编译 SDK。这会破坏一些设备支持,但也允许您使用一些新功能。