相关疑难解决方法(0)

android:versionName 是否必须是数字(形式为 0.0.0 等)?

我尝试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属性包含内部使用的重要版本号。

android android-ndk android-manifest

5
推荐指数
1
解决办法
1951
查看次数

openSSL使用Android的NDK问题

我有以下情况,我正在使用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)

android openssl android-ndk android-ndk-r7

3
推荐指数
1
解决办法
8903
查看次数