出现的Log打印:
java.lang.UnsatisfiedLinkError: Couldn't load jpush175 from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.shop.hsz88-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.shop.hsz88-1, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:365)
at java.lang.System.loadLibrary(System.java:526)
at cn.jpush.android.service.PushProtocol.<clinit>(Unknown Source)
at cn.jpush.android.service.ServiceInterface.a(Unknown Source)
at cn.jpush.android.api.JPushInterface.init(Unknown Source)
at com.insthub.BeeFramework.BeeFrameworkApp.onCreate(BeeFrameworkApp.java:88)
at com.insthub.ecmobile.EcmobileApp.onCreate(EcmobileApp.java:44)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4610)
at android.app.ActivityThread.access$1500(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1389)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5367)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:663)
at dalvik.system.NativeStart.main(Native Method)
1、在eclipse是可以执行的,那就可以确定我打包的.so是正常的;如下图
2、确保了还出现这样的问题,要考虑build.gradle脚本的问题;是不是so文件和jar包文件没有处理啊:
2.1 处理*.jar包文件:
dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':alipay_lib') compile project(':AndroidSDKComponent') compile files('libs/alipaysdk.jar') compile files('libs/alipaysecsdk.jar') compile files('libs/alipayutdid.jar') compile files('libs/android-support-v4.jar') compile files('libs/commons-httpclient-3.0.1.jar') compile files('libs/core.jar') compile files('libs/ecmobilemanager.jar') compile files('libs/epaymobi_pos_sdk.jar') compile files('libs/jpush-sdk-release1.8.1.jar') compile files('libs/Native_Libs2.jar') compile files('libs/libammsdk.jar') compile files('libs/universal-image-loader-1.9.4-with-sources.jar') compile files('libs/UPPayAssistEx.jar') compile files('libs/UPPayPluginExPro.jar') compile files('libs/volley.jar') compile files('libs/weibosdkcore.jar') }
2.2 处理有关的项目所依赖的so文件的目录,动态的拷入到lib目录中。
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") { destinationDir file("$projectDir/libs") baseName "native_ecmobile" extension "jar" from fileTree(dir: "libs", include: "**/*.so") into "lib" }
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
红色标注的名字可以换掉;
加上上面两段代码就可以实现动态加载,最后编译的效果如下;
这样就OK了,希望带给eclipse 转到android studio的开发者提供帮助;