折腾:
【未解决】Mac中用Android Studio打开rctjsa项目并编译apk和实时调试安卓手机小米9
期间,另外看到提示,去点击看看:


看到红色的:
unresolved Reference
resolved: android-23
感觉是:
设置的compile sdk version,不正确,无法解析
感觉和gradle配置:
build.gradle
中的:
project.ext.set("compileSdkVersion", 23)
有关系。
rootProject.compileSdkVersion Unresolved reference Resolved android-23
搞了半天,没搞懂此处问题所在
后来无意间点击 右边的小的下拉按钮,弹框后,才看到完整的错误提示:

Unresolved reference: $rootProject.compileSdkVersion
Unresolved reference rootProject.compileSdkVersion
感觉都不对
应该是:此处的变量rootProject.compileSdkVersion
没有找到,无法解析才对
所以去找找
搜出来的都是和 统一配置管理
即统一版本,只需要设置一处 其他地方(子项目 子任务 )去引用 即可
说就是这个写法:
$rootProject.supportLibraryVersion $rootProject.ext.junitVersion
不过好像是用ext的字典的写法:
ext { // Sdk and tools minSdkVersion = 15 targetSdkVersion = 25 compileSdkVersion = 25 buildToolsVersion = '25.0.2' // App dependencies supportLibraryVersion = '25.1.0' guavaVersion = '18.0' junitVersion = '4.12' mockitoVersion = '1.10.19' powerMockito = '1.6.2' hamcrestVersion = '1.3' runnerVersion = '0.5' rulesVersion = '0.5' espressoVersion = '2.2.2' }
和我此处的:
project.ext.set("compileSdkVersion", 23) project.ext.set("minSdkVersion", 12) project.ext.set("targetSdkVersion", 23) //project.ext.set("buildToolsVersion", "24.0.0")
不一样。
所以或许是新gradle写法不同了?
build.gradle
def androidSupportVersion = '25.3.1' ext { //编译的 SDK 版本,如API20 compileSdkVersion = 25 //构建工具的版本,其中包括了打包工具aapt、dx等,如API20对应的build-tool的版本就是20.0.0 buildToolsVersion = "26.0.0" //兼容的最低 SDK 版本 minSdkVersion = 14 //向前兼容,保存新旧两种逻辑,并通过 if-else 方法来判断执行哪种逻辑 targetSdkVersion = 22 appcompatV7 = "com.android.support:appcompat-v7:$androidSupportVersion" }
别处引用:
app/build.gradle
android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.wuxiaolong.gradle4android" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 versionName "1.0" } } dependencies { //…… compile rootProject.ext.appcompatV7 }
是写成:
rootProject.ext.compileSdkVersion
的。
所以:感觉此处应该需要改为:rootProject.ext.compileSdkVersion
是定义了:
buildscript {...} allprojects {...} // This block encapsulates custom properties and makes them available to all // modules in the project. ext { // The following are only a few examples of the types of properties you can define. compileSdkVersion = 28 // You can also use this to specify versions for dependencies. Having consistent // versions between modules can avoid behavior conflicts. supportLibVersion = "28.0.0" ... } ...
后,去引用:
模块级 build.gradle
android { // Use the following syntax to access properties you define at the project level: // rootProject.ext.property_name compileSdkVersion rootProject.ext.compileSdkVersion ... } ... dependencies { implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}" ... }
即:rootProject.ext.compileSdkVersion
去改吧:

以为可以了。
但是实际上也不行。
算了,去改:
build.gradle
为ext的写法:
// project.ext.set("compileSdkVersion", 23) // project.ext.set("minSdkVersion", 12) // project.ext.set("targetSdkVersion", 23) ext { compileSdkVersion = 23 minSdkVersion = 12 targetSdkVersion = 23 }
然后估计先要sync

然后再去看看:

竟然就解析出来了。
但是别的模块好像还不行:
不过点击弹框:

好像就可以刷新,解析出来了。
点击OK,看看
还是不行:

点击Apply试试:


然后再去看看:
还是:
只有第一个 module:RI 没问题:

其他还有问题:
发现了,是有些有问题:

有些没问题:

另外去别处看了看
看到Variable中有,我们新加的变量:

去删除掉:
$rootProject.compileSdkVersion
只保留系统的:
compileSdkVersion = 23

都改为了:
$compileSdkVersion
然后发现:
的确没红色报错了:
不过,之前不报错的
依旧可以识别出23

但是之前报错的,依旧没识别出23:

很是奇怪。
点击Apply,依旧报错:

突然想起来了:
此处应该是:
需要修改对应的子模块的配置?
然后此处编译也会报错

点击打开文件:
libs/api/build.gradle
apply plugin: 'com.android.library' android { compileSdkVersion compileSdkVersion // buildToolsVersion rootProject.buildToolsVersion
发现被改了配置了。
改为:
android { // compileSdkVersion compileSdkVersion compileSdkVersion rootProject.ext.compileSdkVersion
结果:
问题依旧。
最后是:
把其他一共11个左右的子module,都改回上述,原来的值。
然后再去找到之前设置页面:

Open Module Settings
重新Apply去sync
结果始终报错:
【已解决】Android Studio中gradle报错:ERROR Cause compileSdkVersion is not specified
但是问题依旧:

搞得:不清楚:
上面这些 除了核心的RI,core,settings(三个对应的才有apk)的其他子模块
中上述红色未解析错误,是否:不算问题?可以不解决?
不过此处另外看到类似的:
settings中,其他tab:
Default config
中:
Target SDK version
中是:
$rootProject.targetSdkVersion

貌似有问题?
去改为:
$rootProject.ext.targetSdkVersion
以及:
$rootProject.minSdkVersion
改为:
$rootProject.ext.minSdkVersion
结果:

貌似没问题了?
但是实际上发现还是有问题:
点击Apply后,还是无法解析:

而同样配置的RI,就没问题:

所以目前感觉是:
不论是:
有些子模块:
$rootProject.targetSdkVersion $rootProject.ext.targetSdkVersion $rootProject.minSdkVersion $rootProject.ext.minSdkVersion
哪种写法对,是否会报红色的解析错误
貌似暂时对项目编译 没啥影响?
暂时就忽略吧。
以后有机会再去尝试搞清楚。
【后记1】
注意到
说的是:
apply plugin: ‘com.android.application’
以及官网
也是说了:
模块级的build.gradle
/** apply plugin: 'com.android.application'
而我此处的是:
libs/api/build.gradle
apply plugin: 'com.android.library'
所以去改为:
apply plugin: 'com.android.application'

然后点击sync

报错很多:
ERROR: Unable to resolve dependency for ':notification@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: notification ERROR: Unable to resolve dependency for ':notification@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: notification ERROR: Unable to resolve dependency for ':notification@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: notification ERROR: Unable to resolve dependency for ':core@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: core ERROR: Unable to resolve dependency for ':core@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: core ERROR: Unable to resolve dependency for ':core@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: core ERROR: Unable to resolve dependency for ':cts_provider@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: cts_provider ERROR: Unable to resolve dependency for ':cts_provider@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: cts_provider ERROR: Unable to resolve dependency for ':cts_provider@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: cts_provider ERROR: Unable to resolve dependency for ':tts@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: tts ERROR: Unable to resolve dependency for ':tts@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: tts ERROR: Unable to resolve dependency for ':tts@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: tts ERROR: Unable to resolve dependency for ':settings@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: settings ERROR: Unable to resolve dependency for ':settings@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: settings ERROR: Unable to resolve dependency for ':settings@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: settings ERROR: Unable to resolve dependency for ':api_cnx@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: api_cnx ERROR: Unable to resolve dependency for ':api_cnx@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: api_cnx ERROR: Unable to resolve dependency for ':api_cnx@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: api_cnx ERROR: Unable to resolve dependency for ':RI@debug/compileClasspath': Could not resolve project :api. Show Details Affected Modules: RI ERROR: Unable to resolve dependency for ':RI@debugAndroidTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: RI ERROR: Unable to resolve dependency for ':RI@debugUnitTest/compileClasspath': Could not resolve project :api. Show Details Affected Modules: RI
算了,保留:
apply plugin: 'com.android.library' apply plugin: 'com.android.application'
结果:
ERROR: Android Gradle plugin 3.5.4 must not be applied to project '/Users/xxx/dev/xxx/RCS/rcsjta/libs/api' since version 3.5.4 was already applied to this project Open File
算了,去掉application,恢复原先内容吧
apply plugin: 'com.android.library' //apply plugin: 'com.android.application'
以后有空再说。
转载请注明:在路上 » 【未解决】Android Studio中Project Structure提示错误:rootProject.compileSdkVersion Unresolved reference Resolved android-23