2016-02-12 3 views
2

Я интегрирую Paypal Payment Gateway с моим Android-приложением. Я добавил эту зависимость:Странная проблема с интеграцией Android с Paypal

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

Я встретил ту же проблему .... любая помощь? – shawn

ответ

1

Я нашел проблему.

Если у вас есть только jni libs для «armeabi», то если вы установите APK в «armeabi-v7a», то будут использоваться только jni libs в «armeabi-v7a», потому что у них есть PayPal.

, чтобы исправить это:

Способ 1. обеспечить как можно больше JNI библиотеки для различных платформ.

Способ 2. Использование в abiFilters выбрать то, что у вас есть:

ndk { 
     abiFilters "x86", "armeabi" 
    } 
+0

Hello shawn. ваш ответ правильный. есть ли какой-нибудь пример кода для добавления abiFilters в мой файл gradle – Moses

+0

Это зависит от используемой вами системы построения Android. Для меня в build.gradle структура выглядит так: android {defaultConfig {ndk {abiFilters "x86", "armeabi"}}} – shawn

1

Если бы интегрировать Единство и PayPal в том же приложении; Unity работал хорошо, но когда я добавил SDK PayPal, я больше не мог общаться с ним, и приложение разбилось.

Следуя за ответом Шона, я наткнулся на 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' 
     } 
    } 
} 

Потому что другие ароматы не работают на всех устройствах.

Смежные вопросы