targetsdkversion 28报错
时间: 2023-04-16 09:00:45 浏览: 174
targetsdkversion 28报错是指在Android应用程序中使用了API级别28的功能,但是在应用程序的构建设置中,目标SDK版本设置不正确,导致出现错误。这个错误通常可以通过修改应用程序的构建设置,将目标SDK版本设置为28来解决。
相关问题
升级targetSdkVersion到30,ConstraintLayout报错
当将Android项目的`targetSdkVersion`升级到Android 11 (API级别30)及以上时,可能会遇到与`ConstraintLayout`相关的错误,这是因为新版本的系统对布局组件的行为进行了调整,尤其是在处理视图约束(Constraints)上。
在Android 11中,Google引入了一些新的变化,比如View Binding API,这可能导致之前基于旧版SDK使用的依赖库或XML约束配置不再适用。当你尝试运行应用时,`ConstraintLayout`可能会抛出关于`Constraints`解析或支持的问题,例如找不到视图、约束冲突等。
解决这个问题通常需要做以下步骤:
1. **检查约束设置**:确保你的`ConstraintLayout` XML文件里的约束(如`app:layout_constraint*`属性)已经适应了最新的约束语法,特别是在使用`androidx.constraintlayout.widget.ConstraintLayout`而不是旧版`com.android.support.constraint.ConstraintLayout`。
2. **更新依赖**:如果你正在使用第三方库,确认其是否支持Android 11以上的版本,并将其更新到最新版本。
3. **启用View Binding**:如果尚未启用,可以在`build.gradle`文件中添加`implementation 'androidx.databinding:viewbinding:4.1.0'`并创建对应的`ViewModel`绑定类。
4. **检查并修复错误**:运行应用,查看错误日志,找出具体的错误提示,根据它提供的信息修改布局或代码。
5. **测试兼容**:在模拟器和真机上分别测试,确保在所有目标API级别上都能正常工作。
targetSdk 26报错
如果你的应用程序的targetSdkVersion设置为26或更高版本,你可能会遇到以下两个错误:
1. java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
这个错误是由于在Android 8.0(API级别26)中,只有全屏不透明的活动才能请求方向更改。如果你的应用程序中的活动不是全屏和不透明的,则需要更改代码以适应这种变化。
解决方案:在AndroidManifest.xml文件中的相应活动中添加以下属性:
```
android:windowFullscreen="true"
android:windowContentOverlay="@null"
```
2. android.os.FileUriExposedException: file:///storage/emulated/0/your_app_folder/your_file exposed beyond app through ClipData.Item.getUri()
这个错误是由于在Android 7.0(API级别24)及更高版本中,应用程序不再允许在共享URI时向外公开file:// URI。相反,你应该使用FileProvider API来共享文件。
解决方案:使用FileProvider API来共享文件。你可以在你的AndroidManifest.xml文件中定义一个FileProvider,然后使用它来共享文件。以下是一个示例:
在AndroidManifest.xml文件中添加以下代码:
```
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
```
在res/xml/文件夹中创建一个file_paths.xml文件,并添加以下代码:
```
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path
name="external_files"
path="." />
</paths>
```
然后,你可以使用以下代码来获取共享文件的URI:
```
File file = new File(Environment.getExternalStorageDirectory(), "your_app_folder/your_file");
Uri uri = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".fileprovider", file);
```
请注意,这只是解决这两个常见错误的基本解决方案。如果你仍然遇到其他问题,请查看Android文档或在Stack Overflow上寻求帮助。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)