Я использую разделение ABI в своем приложении
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips'
universalApk true
}
}
Если я использую эмулятор x86_64, то переключитесь на устройство (armeabi-v7a) (а также другие), android studio отправит app-x86_64-debug.apk на устройство
09/27 17:17:49: Launching app
$ adb push SampleFolder\app\build\outputs\apk\app-x86_64-debug.apk /data/local/tmp/sample.package
$ adb shell pm install -r "/data/local/tmp/sample.package"
pkg: /data/local/tmp/sample.package
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]
Изменить: Способ получения этой проблемы
- Я закрыл эмулятор x86_64
- Подключенное реальное тестовое устройство
- Последующий запуск - Изменить конфигурации - Целевой (Открыть диалоговое окно "Диалоговое окно" Выбор типа развертывания ")
- Запущено подключенное тестовое устройство
Android Studio 2.2.1
После выпуска 2.2.1 я сыграл бит раздельных распределений, тогда все выглядело хорошо. К сожалению, такая же проблема со мной снова возникла. Чтобы быть уверенным, я создал новый проект андроида и импортировал базу данных realm (имеет собственные библиотеки), а затем
добавлен раздел разделения на gradle
splits {
abi {
enable true
reset()
include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips'
}
}
созданный класс приложения
public class SampleApp extends Application {
@Override
public void onCreate() {
initRealm();
}
private void initRealm(){
Realm.init(getApplicationContext());
RealmConfiguration.Builder builder = new RealmConfiguration.Builder();
builder.deleteRealmIfMigrationNeeded();
RealmConfiguration configuration = builder.build();
Realm.setDefaultConfiguration(configuration);
}
}
выбрал мое устройство
приложение работало, поэтому студия отправила соответствующий apk (app-armeabi-v7a-debug.apk) на устройство
$ adb push /home/blackkara/projects/Sample/app/build/outputs/apk/app-armeabi-v7a-debug.apk /data/local/tmp/com.blackkara.sample
В конце концов, я изменил код
public class SampleApp extends Application {
@Override
public void onCreate() {
initRealm();
// The added code
Realm realm = Realm.getDefaultInstance();
}
private void initRealm(){
Realm.init(getApplicationContext());
RealmConfiguration.Builder builder = new RealmConfiguration.Builder();
builder.deleteRealmIfMigrationNeeded();
RealmConfiguration configuration = builder.build();
Realm.setDefaultConfiguration(configuration);
}
}
затем снова запустило приложение, но на этот раз студия отправила неправильный apk (app-armeabi-debug.apk) на устройство
$ adb push /home/blackkara/projects/Sample/app/build/outputs/apk/app-armeabi-debug.apk /data/local/tmp/com.blackkara.sample