首页
社区
课程
招聘
[原创]android studio 2.2 cydia 开发教程一《编译》
发表于: 2016-11-13 14:56 4683

[原创]android studio 2.2 cydia 开发教程一《编译》

2016-11-13 14:56
4683
android studio 2.2 以后就有一个好消息,一个ide就搞定,再也不用分开编译so,了
可以从java到so联调,并且顺利下断点,但是接着而来的就是不用Android.mk这种了,网上的资料瞬间过期了,换成gradle 脚本的一个东东。
跟着向导走,特别指出的有几个地方
第一:包含第三方so
1.第三方so放到libs目录(CMakeLists.txt)
add_library(substrate_lib SHARED IMPORTED)
set_target_properties(substrate_lib PROPERTIES IMPORTED_LOCATION
                             ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}/libsubstrate.so)

add_library(substrate_dvm_lib SHARED IMPORTED)
set_target_properties(substrate_dvm_lib PROPERTIES IMPORTED_LOCATION
                            ${CMAKE_SOURCE_DIR}/libs/${ANDROID_ABI}/libsubstrate-dvm.so)
target_link_libraries( # Specifies the target library.
                       native-lib

                       # Links the target library to the log library
                       # included in the NDK.
                       ${log-lib}
                       substrate_lib
                       substrate_dvm_lib)

2.可能第三方so只有指定平台的so,比如只有arm的,此时你直接包含就会有问题
我们就需要指定一下(build.gradle)
  productFlavors {
        x86 {
            flavorDimension "x86"
            ndk {
                abiFilter "x86"
            }
        }

        arm {
            flavorDimension "abi"
            ndk {
                abiFilter "armeabi"

            }

        }

    }

3.打包的时候要给第三方包打进去,所以我们需要告诉一声(build.gradle)
  sourceSets.main {
        jni.srcDirs = [] // This prevents the auto generation of Android.mk
        jniLibs.srcDir 'libs'
    }


现在编译一下

android vm qq技术交流群:330283876

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
总是得到这个报错:  Error:error:  linker  command  failed  with  exit  code  1  (use  -v  to  see  invocation)
2017-5-4 19:08
0
游客
登录 | 注册 方可回帖
返回