gpt4 book ai didi

android - 为旧版SDK准备Android应用

转载 作者:行者123 更新时间:2023-12-03 05:34:03 31 4
gpt4 key购买 nike

我已经使用Android Studio构建了一个Android应用,并且一直在使用运行Android 5.1.1(API 22)版本的平板电脑进行测试。开发完成后,我尝试使用APK将同一应用安装到运行Android 8.0.0(API 26)的S7。该应用程序在S7上运行时崩溃,但在平板电脑上完美运行。我构建的应用程序的目标SDK版本为API 29,最低SDK版本为API 22。

我可以将SDK的编译版本从29更改为28,并且没有任何构建错误。但是,将其更改为27给我以下错误:

Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
C:\Users\xxxxx\.gradle\caches\transforms-2\files-2.1\9073307f5eb1fdd8dc5b08ac4a3a252e\res\values-v28\values-v28.xml:9:5-12:13: AAPT: error: resource android:attr/dialogCornerRadius not found.

C:\Users\xxxxx\Desktop\appDev\app_green\myApp\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values-v28\values-v28.xml:11: AAPT: error: resource android:attr/dialogCornerRadius not found.

C:\Users\xxxxx\.gradle\caches\transforms-2\files-2.1\11ac981ad78c9fd8730f98006e1b2a23\res\values\values.xml:89:5-125:25: AAPT: error: resource android:attr/fontVariationSettings not found.

C:\Users\xxxxx\.gradle\caches\transforms-2\files-2.1\11ac981ad78c9fd8730f98006e1b2a23\res\values\values.xml:89:5-125:25: AAPT: error: resource android:attr/ttcIndex not found.

error: failed linking references.

我想出如果我一步一步降低API级别并修复出现的任何错误,我最终会得到一个可以在所有所需API上运行的应用程序。这是正确的假设吗?

我该如何解决无法链接Gradle资源的此类错误?这似乎是我用来获取用户输入的对话框的错误。

我发现这些错误的所有解决方案都是“更改API版本”,但是如果我需要此API版本怎么办?

编辑:
应那些试图帮助我解决此问题的人员的要求,我正在发布S7的崩溃日志。
Process: com.myApp, PID: 15167
android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/myApp/files/export_a_c.csv exposed beyond app through ClipData.Item.getUri()
at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
at android.net.Uri.checkFileUriExposed(Uri.java:2356)
at android.content.ClipData.prepareToLeaveProcess(ClipData.java:944)
at android.content.Intent.prepareToLeaveProcess(Intent.java:10480)
at android.content.Intent.prepareToLeaveProcess(Intent.java:10486)
at android.content.Intent.prepareToLeaveProcess(Intent.java:10465)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
at android.app.Activity.startActivityForResult(Activity.java:4564)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivityForResult(Activity.java:4522)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:754)
at com.example.myApp.SecondActivity$onCreate$3$3.onClick(SecondActivity.kt:218)
at android.view.View.performClick(View.java:6897)
at android.widget.TextView.performClick(TextView.java:12693)
at android.view.View$PerformClick.run(View.java:26101)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

当我尝试创建/写入csv文件时发生错误。目的是自动创建此文件,然后提示用户通过电子邮件共享它。

编辑2:
因此,我已修复了在S7上运行时的崩溃问题。如何确保该应用程序可以针对每个API运行?我是否必须将S7的软件降级到要测试的API?

最佳答案

您将需要在应用程序中设置文件提供程序。 https://developer.android.com/training/secure-file-sharing/setup-sharing

关于android - 为旧版SDK准备Android应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57579900/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com