You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jitpack创建Kotlin Android SDK,minifyEnabled=true时如何保留Kotlin类?

问题解答

1. 如何使用Jitpack创建Kotlin Android SDK?

  • 准备Android Library模块:确保项目是Android Library类型(而非Application),在模块的build.gradle中配置Kotlin支持:
    plugins {
        id 'com.android.library'
        id 'org.jetbrains.kotlin.android'
    }
    
    android {
        compileSdk 34 // 按需调整版本
        defaultConfig {
            minSdk 21 // 按需调整最低兼容版本
            targetSdk 34
            versionCode 1
            versionName "1.0"
        }
    }
    
  • 托管代码到Git平台:将代码推送到GitHub/GitLab等仓库,给代码打版本标签(如v1.0.0),Jitpack依赖标签生成可引用的版本包。
  • 配置Jitpack:项目根目录创建jitpack.yml,你的现有配置已满足基础需求:
    jdk:
      - openjdk11
    before_install:
      - ./scripts/prepareJitpackEnvironment.sh
    
  • 发布并引用:访问Jitpack官网,输入Git仓库地址点击「Get it」等待编译完成。其他项目可通过以下方式引用:
    // 项目根build.gradle
    allprojects {
        repositories {
            maven { url 'https://jitpack.io' }
        }
    }
    
    // 模块build.gradle
    dependencies {
        implementation 'com.github.你的用户名:仓库名:版本标签'
    }
    

2. minifyEnabled=true时,如何保留SDK中的Kotlin类?

该问题是R8混淆时默认移除了Kotlin类的元数据或混淆了类名,需添加针对性混淆规则:

  • 在Library模块的proguard-rules.pro中添加规则(替换your.sdk.package为SDK实际包名):
    // 保留SDK包下所有类和成员
    -keep class your.sdk.package.** { *; }
    
    // 保留Kotlin必需的元数据属性
    -keepattributes RuntimeVisibleAnnotations,AnnotationDefault,KotlinMetadata
    
    // 保留Kotlin when表达式生成的映射类
    -keepclassmembers class **$WhenMappings { *; }
    
    // 保留Kotlin伴生对象和内部类的核心成员
    -keepclassmembers class your.sdk.package.** {
        companion object;
        static <fields>;
        <init>(...);
    }
    
  • 确保Library模块build.gradle的release构建类型正确引用混淆文件:
    android {
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
  • 检查prepareJitpackEnvironment.sh脚本,确认未执行移除Kotlin类或修改混淆配置的操作。

内容的提问来源于stack exchange,提问作者Igor Novikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 13:24:53