我有一个复杂的多项目 Android 版本。最近成功升级到Android Studio 3.0.1。但是尝试对 Android Plugin for Gradle 3.0.1(和 gradle 版本 4.1)进行相应升级会破坏我的项目构建。
有级联的失败消息,但主要的似乎是 http://schemas.android.com/apk/res/android不是注册的 URI。
该项目由一个主项目和三个包含的子项目组成。我确实在 Andriod Gradle 插件升级文档中找到了一个报告多项目构建的已知问题的部分,但他们的建议都没有解决这个问题。
任何帮助或建议将不胜感激
顶级配置文件
构建.gradle
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}
allprojects {
repositories {
jcenter()
}
}
ext {
versionName = '1.9.15-26'
versionCode = 10915260
}
设置.gradle
include ':cadpage', ':cadpage-parsers', ':cadpage-private'
Cadpage 子项目/build.gradle
apply plugin: 'com.android.application'
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
android {
compileSdkVersion 23
buildToolsVersion '25.0.0'
defaultConfig {
applicationId 'net.anei.cadpage'
versionName project.versionName
versionCode project.versionCode
minSdkVersion 9
targetSdkVersion 23
}
dexOptions {
jumboMode = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
}
dependencies {
compile project(":cadpage-parsers")
compile 'com.android.support:support-v4:23.0.1'
compile 'com.google.android.gms:play-services-gcm:10.0.1'
}
cadpage-parsers 子项目/build.gradle
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
sourceCompatibility = '1.7'
targetCompatibility = '1.7'
jar {
manifest {
attributes('Implementation-Title': 'Cadpage Parsing Library',
'Implementation-Version': project.versionName,
'Main-Class' : 'net.anei.cadpage.parsers.Parser')
}
}
最佳答案
事实证明,实际问题是我的 AndroidManifest.xml 文件中放错了项目。这是一个记录在案的升级问题。让我失望的是 IDE 报告有关“http://schemas.android.com/apk/res/android”URI 未注册的无关错误。
事实上,gradle 控制台日志确实识别出正确的错误。 IDE 弹出了发生错误的中间 list 文件。该文件中的语法突出显示是从提示未注册的 URI 开始的。我一直专注于解决结果是虚假的错误报告。
关于Android studio gradle 升级失败(http ://schemas. android.com/apk/res/android URI 未注册),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49038483/