Android 应用无法构建
Android app doesn't build
gradle 尝试构建项目(使用 protobuf)后有一个日志
:app:generateDebugProto FAILED
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':app:generateDebugProto'.
protoc: stdout: . stderr: /Users//app/build/extracted-protos/main: warning: directory does not exist. /Users//app/src/debug/proto:
warning: directory does not exist.
/Users//app/build/extracted-protos/debug: warning: directory does not
exist. /Users//app/build/extracted-include-protos/debug: warning:
directory does not exist. /Users//app/src/debug/proto: warning:
directory does not exist. /Users//app/build/extracted-protos/debug:
warning: directory does not exist.
/Users/_/app/build/extracted-include-protos/debug: warning: directory
does not exist. Missing output directives.
尝试:运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。
无法修复。
感谢大家尝试帮助我,但问题出在我的项目中用于 java-nano codegen,所以在更新到 protoc 3.0.0 之后,这会导致问题,所以我阅读 https://github.com/google/protobuf-gradle-plugin and here https://github.com/google/protobuf/releases/tag/v3.0.0,我决定使用 java-lite codegen 而不是 java-nano。现在很清楚了,错误也消失了。
另一种替代解决方案是手动创建丢失的目录。
在我的例子中 MyApp/app/build/extracted-include-protos/main
丢失了,所以我在那里创建了一个 "main" 文件夹,瞧,错误消失了。
以下配置适合我
项目级build.gradle文件
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
应用级别build.gradle文件
apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.8.0'
}
plugins {
javalite {
artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
}
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.0.0-pre2'
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.plugins {
javalite { }
grpc {
option 'lite'
}
}
}
}
}
gradle 尝试构建项目(使用 protobuf)后有一个日志
:app:generateDebugProto FAILED
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':app:generateDebugProto'.
protoc: stdout: . stderr: /Users//app/build/extracted-protos/main: warning: directory does not exist. /Users//app/src/debug/proto: warning: directory does not exist.
/Users//app/build/extracted-protos/debug: warning: directory does not exist. /Users//app/build/extracted-include-protos/debug: warning: directory does not exist. /Users//app/src/debug/proto: warning: directory does not exist. /Users//app/build/extracted-protos/debug: warning: directory does not exist.
/Users/_/app/build/extracted-include-protos/debug: warning: directory does not exist. Missing output directives.尝试:运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。
无法修复。
感谢大家尝试帮助我,但问题出在我的项目中用于 java-nano codegen,所以在更新到 protoc 3.0.0 之后,这会导致问题,所以我阅读 https://github.com/google/protobuf-gradle-plugin and here https://github.com/google/protobuf/releases/tag/v3.0.0,我决定使用 java-lite codegen 而不是 java-nano。现在很清楚了,错误也消失了。
另一种替代解决方案是手动创建丢失的目录。
在我的例子中 MyApp/app/build/extracted-include-protos/main
丢失了,所以我在那里创建了一个 "main" 文件夹,瞧,错误消失了。
以下配置适合我
项目级build.gradle文件
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
应用级别build.gradle文件
apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.8.0'
}
plugins {
javalite {
artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
}
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.0.0-pre2'
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.plugins {
javalite { }
grpc {
option 'lite'
}
}
}
}
}