Android studio(2.2.0和2.2.1)向设备发送错误的ABI拆分

bla*_*ara 10 android android-studio

我在我的应用程序中使用ABI拆分

splits {
    abi {
        enable true
        reset()
        include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips'
        universalApk true
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用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]
Run Code Online (Sandbox Code Playgroud)

编辑:我如何得到这个问题的方式

  • 我关闭了x86_64仿真器
  • 连接真实测试设备
  • 跟随运行 - 编辑配置 - 目标(打开选择部署目标对话框)
  • 选择连接的测试设备

Android Studio 2.2.1

在发布2.2.1之后,我发挥了一点分裂,然后一切看起来都不错.不幸的是,我再次遇到同样的问题.为了确保清楚,我创建了新的android项目和导入的realm数据库(有本机库),然后,

将拆分部分添加到gradle

 splits {
    abi {
        enable true
        reset()
        include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'mips'
    }
}
Run Code Online (Sandbox Code Playgroud)

创建应用程序类

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

选择了我的设备

在此输入图像描述

app工作,所以工作室发送适当的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
Run Code Online (Sandbox Code Playgroud)

毕竟,我改变了代码

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后再次运行应用程序,但这次工作室发送错误的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
Run Code Online (Sandbox Code Playgroud)

Eug*_*nec 2

根据问题 215493, Android Studio 2.2.1 中已发布修复程序。