webrtc native API 'vectorDrawable' & 'Task' 同步时出错 build.grandle
webrtc native API 'vectorDrawable' & 'Task' error when sync build.grandle
首先:我将 'off topic' post 中的这些问题复制并粘贴到 android 发烧友中。有人建议我在这里问这些。
我尝试在我的棒棒糖设备上安装包含官方存储库的 AppRTCMobile 示例。
我在 grandle.build 文件上发现了第一个小错误(没有关闭
“}”)。实际上我在我的日志文件中获得了这些错误:
WARN - ect.sync.idea.ProjectSetUpTask - Could not get unknown property
'vectorDrawables' for source set default config of type com.android.build.gradle.internal.api.DefaultAndroidSourceSet.
Consult IDE log for more details (Help | Show Log)
2018-02-13 13:07:01,478 [d thread 6] INFO - e.project.sync.GradleSyncState - Gradle sync failed: Could not get unknown property 'vectorDrawables' for source set default config of type com.android.build.gradle.internal.api.DefaultAndroidSourceSet.
我的 build.grandle 结果是:
// Generated by //build/android/generate_gradle.py
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com'
}
}
dependencies {
classpath "com.android.tools.build:gradle:3.1.0-alpha08"
} }
我的示例 AppRTCMobile build.grandle 结果如下:
// Generated by //build/android/generate_gradle.py
apply plugin: "com.android.application"
android {
compileSdkVersion "android-27"
buildToolsVersion "27.0.1"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
main {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
test {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
androidTest {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
debug {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
release {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
main {
manifest.srcFile "../../../../../examples/androidapp/AndroidManifest.xml"
java.srcDirs = [
"extracted-srcjars",
]
java.filter.exclude(
)
jniLibs.srcDirs = [
"symlinked-libs",
]
res.srcDirs = [
"extracted-res",
]
}
defaultConfig {
vectorDrawables.useSupportLibrary = true
} }
dependencies {
implementation project(path: ":examples.AppRTCMobile_javalib")
implementation project(path: ":rtc_base.base_java")
implementation project(path: ":base.base_java")
} afterEvaluate {
def tasksToDisable = tasks.findAll {
return (it.name.equals('generateDebugSources') // causes unwanted AndroidManifest.java
|| it.name.equals('generateReleaseSources')
|| it.name.endsWith('BuildConfig') // causes unwanted BuildConfig.java
|| it.name.equals('preDebugAndroidTestBuild')
|| it.name.endsWith('Aidl')
|| it.name.endsWith('Renderscript')
|| it.name.endsWith('Shaders'))
}
tasksToDisable.each { Task task ->
task.enabled = false
} }
为什么会出现这些错误?我在 AppRTCMobile 上的 buld.grandle 有误或包含一些错误??
更新:
我尝试清除项目并仅导入 AppRTCMobile 示例....仅关于 vectorDrawable 的多个错误:
选择 1) 在项目的每个构建文件中注释掉 "vectorDrawables.useSupportLibrary = true" 行。
选择 2) 使用正确的库(超过 23.x)并将最小支持 sdk api 设置为 21 而不是 16。
我用的是选1)。导致这些错误:
/home/myoffice/chromium/src/out/DebugArm/gradle/examples/AppRTCMobile/build/generated/source/r/debug/org/appspot/apprtc/R.java
Error:(10, 14) error: duplicate class: org.appspot.apprtc.R
显然重构 class 不起作用。这些错误类型从何而来?
问候
bkt
您必须在应用级别 gradle 文件中编写这行代码。
enter code here defaultConfig {
applicationId "com.a3dapp"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
grandle 脚本文件部分:
grandle-wrapper.properties 文件更改为:
#Thu Nov 16 19:42:05 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
build.grandle(项目.....) 文件:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.grandle(应用程序)文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "org.appspot.apprtc"
minSdkVersion 18
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
在这些错误消失之后......但没有在我的设备棒棒糖上测试,因为我不是java中的天才,我已经分叉了另一个项目并检查了为什么它在webrtc 官方编号所以现在在我的棒棒糖上 运行 fork 项目 + 我所有的更改,我不再尝试 webrtc 官方示例,否则对我的应用程序来说太丰富了无用的东西。
在这些之后 Android Studio 现在接受同步和 运行 webrtc wxample 官方。
p.s。真的很抱歉我迟到的回复...但我星期五才离开办公室。
问候
bkt
首先:我将 'off topic' post 中的这些问题复制并粘贴到 android 发烧友中。有人建议我在这里问这些。
我尝试在我的棒棒糖设备上安装包含官方存储库的 AppRTCMobile 示例。
我在 grandle.build 文件上发现了第一个小错误(没有关闭 “}”)。实际上我在我的日志文件中获得了这些错误:
WARN - ect.sync.idea.ProjectSetUpTask - Could not get unknown property
'vectorDrawables' for source set default config of type com.android.build.gradle.internal.api.DefaultAndroidSourceSet.
Consult IDE log for more details (Help | Show Log)
2018-02-13 13:07:01,478 [d thread 6] INFO - e.project.sync.GradleSyncState - Gradle sync failed: Could not get unknown property 'vectorDrawables' for source set default config of type com.android.build.gradle.internal.api.DefaultAndroidSourceSet.
我的 build.grandle 结果是:
// Generated by //build/android/generate_gradle.py
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com'
}
}
dependencies {
classpath "com.android.tools.build:gradle:3.1.0-alpha08"
} }
我的示例 AppRTCMobile build.grandle 结果如下:
// Generated by //build/android/generate_gradle.py
apply plugin: "com.android.application"
android {
compileSdkVersion "android-27"
buildToolsVersion "27.0.1"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
main {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
test {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
androidTest {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
debug {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
release {
aidl.srcDirs = []
assets.srcDirs = []
java.srcDirs = []
jni.srcDirs = []
renderscript.srcDirs = []
res.srcDirs = []
resources.srcDirs = []
}
main {
manifest.srcFile "../../../../../examples/androidapp/AndroidManifest.xml"
java.srcDirs = [
"extracted-srcjars",
]
java.filter.exclude(
)
jniLibs.srcDirs = [
"symlinked-libs",
]
res.srcDirs = [
"extracted-res",
]
}
defaultConfig {
vectorDrawables.useSupportLibrary = true
} }
dependencies {
implementation project(path: ":examples.AppRTCMobile_javalib")
implementation project(path: ":rtc_base.base_java")
implementation project(path: ":base.base_java")
} afterEvaluate {
def tasksToDisable = tasks.findAll {
return (it.name.equals('generateDebugSources') // causes unwanted AndroidManifest.java
|| it.name.equals('generateReleaseSources')
|| it.name.endsWith('BuildConfig') // causes unwanted BuildConfig.java
|| it.name.equals('preDebugAndroidTestBuild')
|| it.name.endsWith('Aidl')
|| it.name.endsWith('Renderscript')
|| it.name.endsWith('Shaders'))
}
tasksToDisable.each { Task task ->
task.enabled = false
} }
为什么会出现这些错误?我在 AppRTCMobile 上的 buld.grandle 有误或包含一些错误??
更新:
我尝试清除项目并仅导入 AppRTCMobile 示例....仅关于 vectorDrawable 的多个错误: 选择 1) 在项目的每个构建文件中注释掉 "vectorDrawables.useSupportLibrary = true" 行。 选择 2) 使用正确的库(超过 23.x)并将最小支持 sdk api 设置为 21 而不是 16。
我用的是选1)。导致这些错误:
/home/myoffice/chromium/src/out/DebugArm/gradle/examples/AppRTCMobile/build/generated/source/r/debug/org/appspot/apprtc/R.java
Error:(10, 14) error: duplicate class: org.appspot.apprtc.R
显然重构 class 不起作用。这些错误类型从何而来?
问候 bkt
您必须在应用级别 gradle 文件中编写这行代码。
enter code here defaultConfig {
applicationId "com.a3dapp"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
grandle 脚本文件部分: grandle-wrapper.properties 文件更改为:
#Thu Nov 16 19:42:05 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
build.grandle(项目.....) 文件:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
build.grandle(应用程序)文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "org.appspot.apprtc"
minSdkVersion 18
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
在这些错误消失之后......但没有在我的设备棒棒糖上测试,因为我不是java中的天才,我已经分叉了另一个项目并检查了为什么它在webrtc 官方编号所以现在在我的棒棒糖上 运行 fork 项目 + 我所有的更改,我不再尝试 webrtc 官方示例,否则对我的应用程序来说太丰富了无用的东西。 在这些之后 Android Studio 现在接受同步和 运行 webrtc wxample 官方。
p.s。真的很抱歉我迟到的回复...但我星期五才离开办公室。
问候 bkt