如何解决如何使我的 Android APK 在多个设备上兼容?
就上下文而言,我正在尝试用 Java 创建一个 Android 应用程序,该应用程序可以与其他手机共享自身。我设法让该应用成功地使用蓝牙将其自己的 APK 发送到另一部 Android 手机(请参阅下面的实现)。
问题是一部手机上的 APK 无法安装到另一部手机上。为了进行故障排除,我下载了一个第三方 APK 提取器来发送我的应用程序,结果相同 - APK 已成功传输,但不会安装在另一部手机上。然后我尝试使用 APK 提取器来分享随机选择的 Google Play 应用,有些应用会成功安装在第二部手机上,有些则不会。
在这个阶段,我很确定这是一个兼容性问题。如何让我的 APK 跨设备更兼容?作为参考,我目前正在 3 部手机上对其进行测试:三星 Galaxy S7、华为 Nova 3i 和摩托罗拉 XT1052,但最终我希望该应用能够在尽可能多的设备上访问。
提前致谢:)
sendApp 函数
public void sendApp(Activity activity) {
try {
PackageManager pm = activity.getPackageManager();
ApplicationInfo app = pm.getApplicationInfo(activity.getPackageName(),0);
File apkFile = new File(app.publicSourceDir);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("*/*");
Uri uri = FileProvider.getUriForFile(
getApplicationContext(),BuildConfig.APPLICATION_ID + ".provider",//(use your app signature + ".provider" )
apkFile);
intent.putExtra(Intent.EXTRA_STREAM,uri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
Manifest.xml 提供者标签:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<!-- resource file to create -->
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths">
</meta-data>
</provider>
file_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths>
<root-path
name="root"
path="."/>
</paths>
解决方法
发现问题了! 我发送的是调试 APK,而不是发布 APK。 我刚刚在 Android Studio 中创建了一个签名的 APK(Build>Generate Signed Bundle/APK)。 我自己没有想出解决方案,但是在我选择之前,回答者删除了他们的答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。