Android 安卓NDK协议
我正在尝试使用android studio构建protobuf 2.6.1 NDK,但我不知道如何将protobuf包含在gradle文件中,我也尝试过android.mk和eclipse,但它们都不起作用,请帮助我Android 安卓NDK协议,android,android-studio,android-ndk,protocol-buffers,Android,Android Studio,Android Ndk,Protocol Buffers,我正在尝试使用android studio构建protobuf 2.6.1 NDK,但我不知道如何将protobuf包含在gradle文件中,我也尝试过android.mk和eclipse,但它们都不起作用,请帮助我 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf LOCAL_SRC_FILES :=\ src/google/protob
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libprotobuf
LOCAL_SRC_FILES :=\
src/google/protobuf/descriptor_database.cc \
src/google/protobuf/descriptor.cc \
src/google/protobuf/descriptor.pb.cc \
src/google/protobuf/dynamic_message.cc \
src/google/protobuf/extension_set_heavy.cc \
src/google/protobuf/extension_set.cc \
src/google/protobuf/generated_message_reflection.cc \
src/google/protobuf/generated_message_util.cc \
src/google/protobuf/io/coded_stream.cc \
src/google/protobuf/io/gzip_stream.cc \
src/google/protobuf/io/printer.cc \
src/google/protobuf/io/strtod.cc \
src/google/protobuf/io/tokenizer.cc \
src/google/protobuf/io/zero_copy_stream_impl_lite.cc \
src/google/protobuf/io/zero_copy_stream_impl.cc \
src/google/protobuf/io/zero_copy_stream.cc \
src/google/protobuf/message_lite.cc \
src/google/protobuf/message.cc \
src/google/protobuf/reflection_ops.cc \
src/google/protobuf/repeated_field.cc \
src/google/protobuf/stubs/common.cc \
src/google/protobuf/stubs/once.cc \
src/google/protobuf/stubs/stringprintf.cc \
src/google/protobuf/stubs/structurally_valid.cc \
src/google/protobuf/stubs/strutil.cc \
src/google/protobuf/stubs/substitute.cc \
src/google/protobuf/text_format.cc \
src/google/protobuf/unknown_field_set.cc \
src/google/protobuf/wire_format_lite.cc \
src/google/protobuf/wire_format.cc
ifeq ($(TARGET_ARCH),x86)
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc
endif
LOCAL_CFLAGS := -D GOOGLE_PROTOBUF_NO_RTTI=1
LOCAL_CPPFLAGS := -std=c++11
LOCAL_C_INCLUDES = $(LOCAL_PATH)/src
LOCAL_EXPORT_LDLIBS := -lz
LOCAL_EXPORT_CFLAGS := $(LOCAL_CFLAGS)
LOCAL_EXPORT_CPPFLAGS := $(LOCAL_CPPFLAGS)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
include $(BUILD_STATIC_LIBRARY)
我将新模块添加到我的项目中,并将其命名为proto。这是我的gradle文件:
apply plugin: 'protobuf'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'ws.antonov.gradle.plugins:gradle-plugin-protobuf:0.9.1'
}
}
dependencies {
compile 'com.google.protobuf:protobuf-java:2.6.0'
}
protocPath = 'C:/Users/Paul/proto/protoc'
extractedProtosDir = "${project.buildDir.path}/extracted-protos"
generatedFileDir = "${projectDir}/src/main/java"
//protobufCodeGenPlugins = ['foo:./protoc-gen-foo', 'bar']
dependencies {
// If you have your protos archived in a tar file, you can specify that as a dependency
// ... alternative archive types supported are: jar, tar, tar.gz, tar.bz2, zip
protobuf files("src/main/protos/dungeon.proto")
// Different configuration fileSets are supported
//testProtobuf files("src/main/java")
}
然后在我的应用程序build.gradle中,我添加了编译项目(':proto')
最后,在我的settings.gradle中,我有include':app',':proto'
希望它能有所帮助“我已经尝试了Android.mk和eclipse,但它们都不起作用”,那么您应该在问题中包含该Android.mk文件。其他人不可能仅仅通过阅读“你已经尝试过了”就知道你可能做错了什么。当你试图用这个makefile构建时,会出现哪些错误?@Michael I跟随它来摆脱它。但是我没有得到任何规则来创建目标jni/src/google/protobuf/stubs/common.cc。有什么建议我错过了那里!