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
> > 
> > 
> > 
> > 
>