java - 构建 JAR 后无法为 Android 构建错误“R$color 解析失败”
问题描述
当我使用实现项目(路径:':rocket_library')运行项目时,资源(例如:R.color.color_rocket_web)文件工作正常。但是在构建 JAR 文件并包含未找到项目资源的 JAR 之后。是否可以在 JAR 中附加资源文件?
库代码:在运行时也未从 Libray 中找到。
import infix.imrankst1221.rocket.library.R
fun getThemePrimaryColor(mContext : Context): Int {
return PreferenceUtils.getInstance().getIntegerValue(Constants.KEY_COLOR_PRIMARY, ContextCompat.getColor(mContext, R.color.my_color))
}
运行时异常:
java.lang.NoClassDefFoundError: Failed resolution of: Linfix/imrankst1221/rocket/library/R$color;
at infix.imrankst1221.rocket.library.utility.UtilMethods.getThemePrimaryColor(UtilMethods.kt:65)
at infix.imrankst1221.codecanyon.ui.splash.SplashActivity.onCreate(SplashActivity.kt:30)
Caused by: java.lang.ClassNotFoundException: Didn't find class "infix.imrankst1221.rocket.library.R$color" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/infix.imrankst1221.rocket.web-_mlMdyx2A0UqLZig9zkW5Q==/base.apk"],nativeLibraryDirectories=[/data/app/infix.imrankst1221.rocket.web-_mlMdyx2A0UqLZig9zkW5Q==/lib/x86, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
库构建.Gradle:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
res.srcDirs = ['src/main/res']
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.browser:browser:1.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha06'
implementation 'com.google.code.gson:gson:2.8.5'
}
task createJar(type: Copy) {
from('build/intermediates/packaged-classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'rocket_web.jar')
}
解决方案
这一定是评论!!我没有发表评论的特权
你试过这些..?
- 清理项目并重建。(构建 -> 清理项目并重建)
- 使缓存无效并重新启动(文件 -> 使缓存无效/重新启动)
推荐阅读
- html - 选择 HTML 元素
- javascript - 如何在 d3 中的条和轴之间添加填充?
- kubernetes - 重新创建另一个服务时重新启动 pod
- python - 不和谐机器人的命令不起作用(Python)
- php - 如果传递null,则php函数获取默认值
- javascript - 如何使用javascript插入和获取动态创建的输入字段的值?
- spring-cloud-stream - Spring 云流消息传递。消息为空
- encryption - Python AES 解密初始化向量和键值大小问题
- python - 我在第 20 行出现错误“TypeError: 'float' object is not subscriptable”
- python - 圆形列表、列表列表、numpy 数组或其他维护其结构的结构