我正在将Paypal支付网关与我的Android应用程序集成。我添加了这种依赖:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:palette-v7:+'
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.parse:parse-android:1.+'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.paypal.sdk:paypal-android-sdk:2.13.1'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
}
当我添加此'com.paypal.sdk:paypal-android-sdk:2.13.1'
时,应用程序无法加载我的JNI库。
static {
System.loadLibrary("myLibrary");
}
如果我删除此'com.paypal.sdk:paypal-android-sdk:2.13.1'
,它运行良好。
我该如何解决这个问题?
答案 0 :(得分:1)
我发现了问题。
如果您只有“armeabi”的jni库,那么如果您将APK安装到“armeabi-v7a”,则只会使用“armeabi-v7a”中的jni库,因为PayPal会使用它们。
解决这个问题:
方法1.为不同的平台提供尽可能多的jni库。
方法2.使用abiFilters选择你拥有的东西:
ndk {
abiFilters "x86", "armeabi"
}
答案 1 :(得分:1)
必须在同一个应用中集成Unity和PayPal; Unity工作正常,但是当我添加PayPal SDK时,我无法再与它通信,应用程序崩溃了。
按照shawn的回答,我遇到this gradle,并尝试添加productFlavors。我的gradle最终看起来像这样:
productFlavors {
arm7 {
// in the future, ndk.abiFilter might also work
ndk {
abiFilter 'armeabi-v7a'
}
}
all {
ndk {
abiFilters 'mips', 'mips64', 'x86', 'x86_64'
}
}
}
因为其他口味并不适用于所有设备。