在 android 项目中使用 Kotlogram 库
Posted
技术标签:
【中文标题】在 android 项目中使用 Kotlogram 库【英文标题】:Using Kotlogram library in android project 【发布时间】:2016-08-31 00:58:58 【问题描述】:我想在我的 android 项目中使用Kotlogram library。
我正在使用 java 7 (jdk1.7.0_79)。但是当我想调试或运行项目时,发生了这个错误:
意外的***异常: java.lang.RuntimeException:异常解析类 在 com.android.dx.command.dexer.Main.processClass(Main.java:752) 在 com.android.dx.command.dexer.Main.processFileBytes(Main.java:718) 在 com.android.dx.command.dexer.Main.access$1200(Main.java:85) 在 com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1645) 在 com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 在 com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 在 com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 在 com.android.dx.command.dexer.Main.processOne(Main.java:672) 在 com.android.dx.command.dexer.Main.processAllFiles(Main.java:574) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:311) 在 com.android.dx.command.dexer.Main.run(Main.java:277) 在 com.android.dx.command.dexer.Main.main(Main.java:245) 在 com.android.dx.command.Main.main(Main.java:106) 原因:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000) 在 com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) 在 com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) 在 com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) 在 com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) 在 com.android.dx.command.dexer.Main.parseClass(Main.java:764) 在 com.android.dx.command.dexer.Main.access$1500(Main.java:85) 在 com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1684) 在 com.android.dx.command.dexer.Main.processClass(Main.java:749) ... 12 更多 1个错误;中止 失败
FAILURE:构建失败并出现异常。
出了什么问题: 任务 ':app:transformClassesWithDexForDebug' 执行失败。 com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' 完成非零退出值 1
app build.gradel 内容:
apply plugin: 'com.android.application'
android
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig
applicationId "api.telegram.learn.kotlogram"
minSdkVersion 12
targetSdkVersion 23
versionCode 1
versionName "1.0"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
compileOptions
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
dexOptions
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.github.badoualy:kotlogram:0.0.6'
项目 build.gradel 内容
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
buildscript
repositories
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
jcenter()
maven url "https://jitpack.io"
task clean(type: Delete)
delete rootProject.buildDir
【问题讨论】:
将此添加到您的 gradle 并清理并重建您的项目.. 在依赖部分之上。 存储库 maven url "jitpack.io" Bad class file magic or version的可能重复 我在这篇文章中展示了我的 app build.gradel 内容。我也忘记展示项目 build.gradel 了。当然我已经添加了这个存储库。我已经在项目 build.gradel 中添加了这个存储库。我没有编译错误。当我想调试或运行项目时会发生此错误 我看到了这个链接“Bad class file magic or version”。但这对我没有帮助 谁能帮助我?我必须解决这个错误 【参考方案1】:最后我下载了存储库并将其模块手动添加到 android 项目并找到问题。
只有 java 8 可以正确编译和运行这些模块。他们使用了一些在 java 8 中定义但在 java 7 中没有定义的特殊方法。java 7 无法编译它们。
通过查看refrence,android 项目需要 java 7 才能编译和运行。
在android项目中使用Kotlogram似乎是不可能的。
【讨论】:
这不是真的。启用 Jack 后,Java 8 与 Android 完美配合。 杰克是什么意思? 请提供一些链接,以了解有关在 android 中使用 java 8 的更多信息。以上是关于在 android 项目中使用 Kotlogram 库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android studio 中使用我的 android 项目作为其他项目中的库? [复制]
在android项目和库中使用支持库(Android Studio)
可以在Gradle,Android项目中使用ApiFuture吗?