OnePlus 7 上本地通过 USB 的 运行 应用程序问题 ("Device supports , but APK only supports armeabi-v7a, x86_64, arm64-v8a, x86")

Problems running app on OnePlus 7 locally over USB ("Device supports , but APK only supports armeabi-v7a, x86_64, arm64-v8a, x86")

我想将带有 USB 的全新 OnePlus 7 测试设备连接到我的开发笔记本电脑,然后直接从 Android Studio 将我们的应用程序安装到它。

但是,Android Studio 显示:

...并尝试 运行 设备上的应用失败:

The app doesn't support SDK version of the device: (1).

我发现这与我们为(两种)构建类型指定的 abiFilters 有关:

ndk {
    abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}

那是有原因的,但我是新手,可能无法很好地解释它...尝试删除 abiFilters 会导致构建 (:app:packageDebugBundle) 到失败 "All modules with native libraries must support the same set of ABIs ..."

编辑:这归结为应用程序中的一个模块使用专有库,包括仅适用于 [ARM64_V8A, ARMEABI_V7A, X86, X86_64] 的本机库 (.so) .我们无法控制改变它。

那么该列表中缺少哪个 ABI? OnePlus 7 使用什么 ABI?它有一个 Qualcomm Snapdragon 855 CPU 但我无法轻易弄清楚它映射到什么。

另外一点:当分发到 Google Play 时,该应用程序在 OnePlus 7 上运行良好。 有任何解决方法可以让它在本地运行吗?


还有其他想法可以使这项工作成功吗?该设备显然启用了 USB 调试;我还缺少其他开发者选项吗?

有点奇怪,但已经解决了。

我也在命令行上尝试了 adb install,但失败了 error: device unauthorized。这促使我尝试 this answer 建议的内容:撤销 USB 授权

之后,重新连接电缆并再次授予 USB 调试权限,单击 Android Studio 中的 "play" 安装并在 OnePlus 设备上正常启动应用程序。