帖子
帖子
用户
博客
课程
显示全部楼层
14
帖子
0
勋章
81
Y币

[插件开发] Android 插件开发 kotlin 打包模块

[复制链接]
发表于 2024-1-25 14:54:45
大佬们, 用Android 开发插件 , Java和kotlin混合开发, 在插件 build.gradle 的 plugins 添加了  id 'kotlin-android' ,在本地测试使用正常, 打包模块放平台应用, 调用kotlin类显示异常

2024-01-25 14:28:48.364 25208-25208**.**.alcs.app W/System.err: Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;
2024-01-25 14:28:48.364 25208-25208**.**.alcs.app W/System.err:     at com.adminli.bleutil.AdvertisingHelper.initBluetooth(Unknown Source:2)
2024-01-25 14:28:48.364 25208-25208**.**.alcs.app W/System.err:     at com.adminli.bleutil.MyBleTrans.jsmethod_initBluetooth(MyBleTrans.java:58)

2024-01-25 14:28:48.364 25208-25208**.**.alcs.app W/System.err:         ... 33 more
2024-01-25 14:28:48.364 25208-25208**.**.alcs.app W/System.err: Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
2024-01-25 14:28:48.365 25208-25208**.**.alcs.app W/System.err:         ... 35 more

开起来是打包后的模块缺少kotlin环境, 所以请教下打包此类插件,是不是要单独对kotlin做什么操作呀?  感谢大佬!!!!!!

以下是插件 build.gradle  的配置
plugins {
    id 'com.android.library'
    id 'kotlin-android'
}

android {
    compileSdkVersion 31

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 31

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles "consumer-rules.pro"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.3.0'
    compileOnly files('../app/libs/apiEngine v3.0.0.jar')
}



130
帖子
7
勋章
5万+
Y币
把kotlin的jar包放到插件包中

还有
implementation 'androidx.appcompat:appcompat:1.3.0' 尽量使用1.0.0版本进行测试
14
帖子
0
勋章
81
Y币
Arly【770104707】 · 2024-1-25 15:06把kotlin的jar包放到插件包中

还有

要把kotlin jar包直接放压缩包里还是 要在模块中的libs中在代码中引用jar呀??
有kotlin jar的下载资源吗  找了一圈没看到有下的.
130
帖子
7
勋章
5万+
Y币
admin李 · 2024-1-25 15:53要把kotlin jar包直接放压缩包里还是 要在模块中的libs中在代码中引用jar呀??
有kotlin jar的下载资源吗  找了一圈没看到有下的.

插件包的 source 文件夹下边

你本地android studio 不是给你下载完了嘛
androidx吗 反编译看你的apk是不是
14
帖子
0
勋章
81
Y币
Arly【770104707】 · 2024-1-25 16:01插件包的 source 文件夹下边

你本地android studio 不是给你下载完了嘛

大佬:
一. 我没有太清楚插件包的source的文件夹是哪个 ,之前打别的插件都是在一个文件夹下放aar 和 so库资源包之类的,
然后我试了下面这几种都没成功 ,  请指点下迷津  写代码不易, 剩最后打包这一步了,感谢感谢!!!:
1. 把在Android studio中拿到的 kotlin jar包 放在与aar同级的文件中压缩上传测试依然失败, (BleUtil文件下分别是 BleUtil-release.aar, module.json , kotlin-compiler-embeddable-1.6.21-sources.jar  )

2. 在aar同级目录下创建了个source文件,jar包放在source中, 压缩上传测试依然失败,(BleUtil文件下分别是BleUtil-release.aar, module.json ,source文件夹 )  (source文件夹下 放的, kotlin-compiler-embeddable-1.6.21-sources.jar)

3. 尝试着把kotlin放插件代码的 libs中引用 编译没成功.

二. 想问下我拿Android studio中的kotlin jar包  找到两个 第一个是, kotlin-compiler-embeddable-1.6.21-sources.jar 有9M    第二个是 kotlin-compiler-embeddable-1.6.21.jar 有49M,  应该用哪一个呢?

三. 再问下 我集成的 implementation 'androidx.appcompat:appcompat:1.0.0'  也需要找jar资源包给他放里面吗??
130
帖子
7
勋章
5万+
Y币
admin李 · 2024-1-26 11:13大佬:
一. 我没有太清楚插件包的source的文件夹是哪个 ,之前打别的插件都是在一个文件夹下放aar 和 so库资源包之类的,
然后我试了下面这几种都没成功 ,  请指点下迷津  写代码不易, 剩最后打包这一步了,感谢感谢! ...

1.不对
2.对,但是包kotlin-compiler-embeddable-1.6.21.jar 是这个(可能还需要有其他的依赖之类的,自己分析一下)
3. 不了解你是怎么处理的
129
帖子
7
勋章
1万+
Y币
我也想尝试使用kotlin开发模块,但是各种报错,你用的是什么版本的gradle,插件什么的都是怎么配置的版本才能运行起来
您需要登录后才可以回帖 登录

本版积分规则