如何让Capacitor 4.5.0修改Android的targetSdkVersion为33
关于Capacitor 4.5.0修改targetSdkVersion到33的解决方案
在Capacitor 4.x版本(包括你使用的4.5.0),无法直接通过capacitor.config.ts配置修改targetSdkVersion,需要通过修改Android项目的Gradle配置来实现,具体有两种可行方式:
方式一:直接修改variables.gradle文件
找到生成的android/variables.gradle文件,直接修改其中的参数:
ext { minSdkVersion = 22 compileSdkVersion = 33 // 建议同步升级到33,和targetSdkVersion保持一致 targetSdkVersion = 33 // 其他参数保持不变 androidxActivityVersion = '1.4.0' androidxAppCompatVersion = '1.4.2' androidxCoordinatorLayoutVersion = '1.2.0' androidxCoreVersion = '1.8.0' androidxFragmentVersion = '1.4.1' coreSplashScreenVersion = '1.0.0-rc01' androidxWebkitVersion = '1.4.0' junitVersion = '4.13.2' androidxJunitVersion = '1.1.3' androidxEspressoCoreVersion = '3.4.0' cordovaAndroidVersion = '10.1.1' }
修改后,后续执行npx cap sync或npx cap build时,Capacitor不会覆盖这个文件的修改(除非你删除整个android目录重新生成),所以只需修改一次即可。
方式二:在app/build.gradle中覆盖配置
打开android/app/build.gradle文件,在android代码块里添加或修改defaultConfig的参数:
android { defaultConfig { targetSdkVersion 33 compileSdkVersion 33 } }
或者也可以在文件最顶部直接覆盖ext变量:
ext { targetSdkVersion = 33 compileSdkVersion = 33 }
这种方式同样能生效,且无需修改variables.gradle文件。
补充说明
Capacitor 5.x及以上版本才支持在capacitor.config.ts中直接配置Android的SDK版本参数,示例如下:
import { CapacitorConfig } from '@capacitor/cli'; const config: CapacitorConfig = { appId: 'com.example.app', appName: 'My App', webDir: 'dist', android: { compileSdkVersion: 33, targetSdkVersion: 33, minSdkVersion: 22 } }; export default config;
但你当前使用的4.5.0版本不支持该配置,因此只能采用前面两种Gradle修改方案。
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture
相关产品推荐
相关产品推荐

