我尝试android:versionName=">0.3"在我的AndroidManifest.xml文件中使用(作为对自己的说明,以便在下一个版本中使用它),但 NDK 不喜欢它:
Invalid attribute name:
C:/Android/android-ndk-r8d/build/gmsl/__gmsl:512: *** non-numeric second argument to `wordlist' function: ''. Stop.
Run Code Online (Sandbox Code Playgroud)
然而,文档似乎表明我可以versionName随心所欲:
android:versionName向用户显示的版本号。此属性可以设置为原始字符串或对字符串资源的引用。除了向用户显示之外,该字符串没有其他用途。该
versionCode属性包含内部使用的重要版本号。
我有以下情况,我正在使用OpenSSL移植一个应用程序进行AES加密,我已经编译了所有内容,但链接器失败了.情况如下:1.我写了一个简单的JNI包装器:
private native String cipherString(String plainData, int datasize, String password, int passSize);
private native String decipherString(String cipheredData, int datasize, String password, int passSize);
Run Code Online (Sandbox Code Playgroud)
接下来我有一个c ++文件,我称之为具有正确的JNI sintax,它将jstring转换为char*和所有其他所需的转换,并调用另一个实际导入openssl头文件(存在并计入)的cpp文件并调用openssl方法用于加密和解密.
因此,当我调用ndk-build时,它会构建所有的拇指,因此编译器会正确编译它们.接下来我需要移植openssl for android,我使用这个OpenSSL for Android ,它的工作方式就像一个简单的ndk-build的char(在项目的根目录中,当然)并构建了libssl.so和libcrypto.so
所以我需要连接两个..我发现连接构建脚本是一个挑战,所以一个ndk-build编译并链接一切(如果有人有时间,我会很感激一个简单的示例项目)
所以我在jni/includes/prebuilt中复制了已编译的libssl和libcrypto .so文件,并希望将它们包含在项目中,以便链接器能够最终创建我将在最后使用的lib.
我有以下Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/includes/build/common.mk
include $(LOCAL_PATH)/includes/build/common_includes.mk
APP_STL := gnustl_static
LOCAL_MODULE := packer
LOCAL_SRC_FILES := modules/cipher/wrapper.cpp \
... #rest of the cpp code
LOCAL_C_INCLUDES += $(LOCAL_PATH)/includes/openssl
LOCAL_SHARED_LIBRARIES := $(LOCAL_PATH)/includes/precompiled/libssl.so \
$(LOCAL_PATH)/includes/precompiled/libcrypto.so
LOCAL_SHARED_MODULES := sslx cryptox
include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH := $(call …Run Code Online (Sandbox Code Playgroud)