Подтвердить что ты не робот

Студия Android (2.2.0 и 2.2.1) отправляет неправильное разделение ABI на устройство

Я использую разделение 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
4b9b3361

Ответ 1

Согласно Issue 215493 исправление было выпущено в Android Studio 2.2.1.