问题原因:
项目是从Eclipse转换到AS工程的,项目的build.gradle其中部分配置如下:
sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] } // Move the tests to tests/java, tests/res, etc... instrumentTest.setRoot('tests') // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') }
其中没有
jniLibs.srcDirs = ['libs']
而libbdpush_V2_7.so文件是拷贝到libs/armeabi目录下。
所以libbdpush_V2_7.so没有打进包里去,导致程序运行时找不到“libbdpush_V2_7.so”文件报错。