You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@weex.apache.org by wcxwave <wc...@aliyun.com.INVALID> on 2018/07/16 03:20:19 UTC
回复:[ANDROID] Release 0.19-rc2 weex-core crashing using clang toolchain
Thanks for replying.
I find the rending speed in 0.19-rc2 is very slow than 0.16.
Maybe it's caused by our compile weex-core.
Can you supply the works weex-core.so in the release libs?
The latest weex-core.so in the libs dictionay doesn't work now. It's too old to match the newest code.
------------------------------------------------------------------
发件人:申远 <sh...@gmail.com>
发送时间:2018年7月16日(星期一) 10:45
收件人:dev <de...@weex.incubator.apache.org>; wcxwave <wc...@aliyun.com>
抄 送:dev <de...@weex.apache.org>; Hanks Zhang <zh...@gmail.com>
主 题:Re: [ANDROID] Release 0.19-rc2 weex-core crashing using clang toolchain
Thank you for your notice.
1. First, It is our goal to support arm-v7a, which is removed in NDK 17. There is no other way except for using NDK 16 for now.
2. Weex uses JavaScript Core compiled by GCC as a JS Interpreter. It is strongly suggested to use GCC instead of Clang.
3. We will fix the return value issue soon.
> 在 2018年7月14日,17:39,wcxwave <wc...@aliyun.com.INVALID> 写道:
>
> Dear all,
> in release 0.19-rc2 android project, I find the libweexcore has some problems.
> 1) First, in the latest ndk 0.16 - 0.17, the android just support clang platform tools.
> -DANDROID_TOOLCHAIN=clang
> -DANDROID_STL=c++_static
> but in the weex-sdk project, it still uses gcc.
> -DANDROID_TOOLCHAIN=gcc,
> -DANDROID_STL=gnustl_static,
> I get some bugs such as 'there no memcpy function'.
> 2) Second, After I change it to use clang, there are some warning during the compile.
> I just ignore it.(but the developer should resolve it. some warning just a bug.)
> I get the weexcore.so. But it crashes after launch the app.
> Then I think it maybe my enviroment problems, so I just replace the weexcore.so from the apache github.
> Unfortunately, there weexcore.so in the github is not matched the source.
> It reports there is no native method nativeSetViewPort in WXBridge. I'm depressed for it.
> Then I just try to solve the crash.
> A/art: art/runtime/check_jni.cc:70] JNI DETECTED ERROR IN APPLICATION: native code passing in reference to invalid local reference: 0x200001
> A/art: art/runtime/check_jni.cc:70] in call to DeleteLocalRef
> After some debuging, I find the reason for it.
> In the jni_load.cc funtion JNI_OnLoad,
> the function WeexCore::RegisterJNIMeasureMode(env); will crash, it will call DeleteLocalRef twice.
> After debuging more times and chaning code, I find a problem for the function RegisterJNIMeasureMode.
>
> the origin source:
> bool RegisterJNIMeasureMode(JNIEnv *env) {
> RegisterNativesImpl(env);
> }
> there is no return value.
> after I change it to the following code,
> bool RegisterJNIMeasureMode(JNIEnv *env) {
> ///wcheer.com modified by simon add return 2018.7.14
> return RegisterNativesImpl(env);
> }
> It can works for the function. but the latter function is crashed again.
> WeexCore::RegisterWXJsFunction(env);
> it has the same reason for crashing.
>
> In the last, I suggest the weex project ndk should use clang toolschain.
> You can resolve some easy problems and it can save other developer's time and efforts.\
> Thanks.
>
> Regards Best.
> Simon Wu.
> 2018.7.14
>
>
>
>
Re: [ANDROID] Release 0.19-rc2 weex-core crashing using clang
toolchain
Posted by 申远 <sh...@gmail.com>.
Already updated. BTW, you can recompile the corresponding so files by 'cd weex_core ; ./weex_core/release.sh'
> 在 2018年7月16日,11:20,wcxwave <wc...@aliyun.com> 写道:
>
> Thanks for replying.
> I find the rending speed in 0.19-rc2 is very slow than 0.16.
> Maybe it's caused by our compile weex-core.
> Can you supply the works weex-core.so in the release libs?
> The latest weex-core.so in the libs dictionay doesn't work now. It's too old to match the newest code.
> ------------------------------------------------------------------
> 发件人:申远 <sh...@gmail.com>
> 发送时间:2018年7月16日(星期一) 10:45
> 收件人:dev <de...@weex.incubator.apache.org>; wcxwave <wc...@aliyun.com>
> 抄 送:dev <de...@weex.apache.org>; Hanks Zhang <zh...@gmail.com>
> 主 题:Re: [ANDROID] Release 0.19-rc2 weex-core crashing using clang toolchain
>
> Thank you for your notice.
>
> 1. First, It is our goal to support arm-v7a, which is removed in NDK 17. There is no other way except for using NDK 16 for now.
> 2. Weex uses JavaScript Core compiled by GCC as a JS Interpreter. It is strongly suggested to use GCC instead of Clang.
> 3. We will fix the return value issue soon.
>
> > 在 2018年7月14日,17:39,wcxwave <wc...@aliyun.com.INVALID> 写道:
> >
> > Dear all,
> > in release 0.19-rc2 android project, I find the libweexcore has some problems.
> > 1) First, in the latest ndk 0.16 - 0.17, the android just support clang platform tools.
> > -DANDROID_TOOLCHAIN=clang
> > -DANDROID_STL=c++_static
> > but in the weex-sdk project, it still uses gcc.
> > -DANDROID_TOOLCHAIN=gcc,
> > -DANDROID_STL=gnustl_static,
> > I get some bugs such as 'there no memcpy function'.
> > 2) Second, After I change it to use clang, there are some warning during the compile.
> > I just ignore it.(but the developer should resolve it. some warning just a bug.)
> > I get the weexcore.so. But it crashes after launch the app.
> > Then I think it maybe my enviroment problems, so I just replace the weexcore.so from the apache github.
> > Unfortunately, there weexcore.so in the github is not matched the source.
> > It reports there is no native method nativeSetViewPort in WXBridge. I'm depressed for it.
> > Then I just try to solve the crash.
> > A/art: art/runtime/check_jni.cc:70] JNI DETECTED ERROR IN APPLICATION: native code passing in reference to invalid local reference: 0x200001
> > A/art: art/runtime/check_jni.cc:70] in call to DeleteLocalRef
> > After some debuging, I find the reason for it.
> > In the jni_load.cc funtion JNI_OnLoad,
> > the function WeexCore::RegisterJNIMeasureMode(env); will crash, it will call DeleteLocalRef twice.
> > After debuging more times and chaning code, I find a problem for the function RegisterJNIMeasureMode.
> >
> > the origin source:
> > bool RegisterJNIMeasureMode(JNIEnv *env) {
> > RegisterNativesImpl(env);
> > }
> > there is no return value.
> > after I change it to the following code,
> > bool RegisterJNIMeasureMode(JNIEnv *env) {
> > ///wcheer.com modified by simon add return 2018.7.14
> > return RegisterNativesImpl(env);
> > }
> > It can works for the function. but the latter function is crashed again.
> > WeexCore::RegisterWXJsFunction(env);
> > it has the same reason for crashing.
> >
> > In the last, I suggest the weex project ndk should use clang toolschain.
> > You can resolve some easy problems and it can save other developer's time and efforts.\
> > Thanks.
> >
> > Regards Best.
> > Simon Wu.
> > 2018.7.14
> >
> >
> >
> >
>