Repository: incubator-weex Updated Branches: refs/heads/master 7f80f9043 -> dddd0f427
[WEEX-395][Android] add more user tracks to track init framework add more user tracks to track init framework, For example. we can track can't find libweexjss.so Fix NPE cause str may be null Bug: WEEX-395 Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/dddd0f42 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/dddd0f42 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/dddd0f42 Branch: refs/heads/master Commit: dddd0f4278f2df905f81993336aecbf1f30bc060 Parents: 7f80f90 Author: ä¸ç <[email protected]> Authored: Wed May 23 17:46:21 2018 +0800 Committer: YorkShen <[email protected]> Committed: Wed May 23 20:11:04 2018 +0800 ---------------------------------------------------------------------- .../Source/android/base/string/string_utils.h | 21 +++++++++++++------- .../android/jsengine/multiprocess/WeexProxy.cpp | 16 +++++++++------ 2 files changed, 24 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/dddd0f42/weex_core/Source/android/base/string/string_utils.h ---------------------------------------------------------------------- diff --git a/weex_core/Source/android/base/string/string_utils.h b/weex_core/Source/android/base/string/string_utils.h index 8c51873..fd29371 100644 --- a/weex_core/Source/android/base/string/string_utils.h +++ b/weex_core/Source/android/base/string/string_utils.h @@ -52,9 +52,13 @@ static inline std::string jString2Str(JNIEnv *env, const jstring &jstr) { env->DeleteLocalRef(strencode); env->DeleteLocalRef(barr); - std::string stemp(rtn); - free(rtn); - return stemp; + if(rtn != NULL) { + std::string stemp(rtn); + free(rtn); + return stemp; + } else { + return ""; + } } static inline std::string jString2StrFast(JNIEnv *env, const jstring &jstr){ @@ -72,14 +76,17 @@ static std::string jByteArray2Str(JNIEnv *env, jbyteArray barr) { rtn = (char *) malloc(alen + 1); memcpy(rtn, ba, alen); rtn[alen] = 0; + } + env->ReleaseByteArrayElements(barr, ba, 0); + + if(rtn != NULL){ + std::string stemp(rtn); + free(rtn); + return stemp; } else { return ""; } - env->ReleaseByteArrayElements(barr, ba, 0); - std::string stemp(rtn); - free(rtn); - return stemp; } static inline jbyteArray newJByteArray(JNIEnv *env, const char* pat) { http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/dddd0f42/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp ---------------------------------------------------------------------- diff --git a/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp b/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp index 316644b..44a9aca 100644 --- a/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp +++ b/weex_core/Source/android/jsengine/multiprocess/WeexProxy.cpp @@ -518,7 +518,7 @@ namespace WeexCore { soPath += "/libweexjss.so"; if (access(soPath.c_str(), 00) != 0) { LOGE("so path: %s is not exsist", soPath.c_str()); - //reportNativeInitStatus("-1004", error); + reportNativeInitStatus("-1004", error); //return false; //use libweexjss.so directly soPath = "libweexjss.so"; @@ -531,7 +531,7 @@ namespace WeexCore { if (!handle) { const char *error = dlerror(); LOGE("load libweexjss.so failed,error=%s\n", error); -// reportNativeInitStatus("-1005", error); + reportNativeInitStatus("-1005", error); // try again use current path dlclose(handle); return false; @@ -545,7 +545,7 @@ namespace WeexCore { if (!initMethod) { const char *error = dlerror(); LOGE("load External_InitFrameWork failed,error=%s\n", error); -// reportNativeInitStatus("-1006", error); + reportNativeInitStatus("-1006", error); dlclose(handle); return false; } @@ -565,7 +565,7 @@ namespace WeexCore { dlclose(handle); free(pFunctions); free(js_server_api_functions); - //reportNativeInitStatus("-1007", "Init Functions failed"); + reportNativeInitStatus("-1007", "Init Functions failed"); return false; } } @@ -716,8 +716,12 @@ namespace WeexCore { serializer->add(c_value_chars, c_value_len); initFrameworkParams.push_back( genInitFrameworkParams(c_key_chars, c_value_chars)); - WXCoreEnvironment::getInstance()->AddOption(jString2Str(env, jkey), - jString2Str(env, jvalue)); + const std::string &key = jString2Str(env, jkey); + if (key != "") { + WXCoreEnvironment::getInstance()->AddOption(key, + jString2Str(env, jvalue)); + } + } } env->DeleteLocalRef(jobjArray);
