【问题标题】:Android studio(2.2.0 and 2.2.1) sends wrong ABI split to deviceAndroid Studio(2.2.0 和 2.2.1)向设备发送错误的 ABI 拆分
【发布时间】:2016-09-27 14:51:57
【问题描述】:

我在我的应用中使用 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 后,我玩了一些拆分发行版,然后一切看起来都不错。不幸的是,同样的问题再次发生在我身上。为了清楚起见,我创建了新的 android 项目并导入了领域数据库(具有本机库),然后,

将拆分部分添加到 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

【问题讨论】:

  • 为了清楚起见,底部代码格式的 sn-p 显示的是 Android Studio 的输出?
  • 是的,我只是将包名更改为 sample.package
  • 您如何切换到设备?从 IDE 运行应用程序时,您只是选择设备吗?
  • 编辑了答案。
  • 这里是你可以做到的stackoverflow.com/a/39470840/2444099。除非您是 NDK 代码的作者,否则就足够了。

标签: android android-studio


【解决方案1】:

根据Issue 215493 的消息,Android Studio 2.2.1 中已发布修复程序。

【讨论】:

    猜你喜欢
    • 2014-07-23
    • 2019-05-09
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多