递归火山软件开发平台

标题: 生成DEX文件失败???(invalid opcode ba - invokedynamic requires -... [打印本页]

作者: xqnh520    时间: 2021-8-3 02:15
标题: 生成DEX文件失败???(invalid opcode ba - invokedynamic requires -...
本帖最后由 xqnh520 于 2021-8-5 09:08 编辑

当前程序编译时所需求安卓SDK API版本: 29, 实际所使用版本: 29;  运行时所需求API版本: 26
当前程序所需求Java SDK版本: 1.6;  实际所使用版本: 1.8
正在进行"生成DEX文件"工作,请稍候...
错误:
    步骤"生成DEX文件"执行失败
    Uncaught translation error:
    com.android.dx.*Fcode.SimException: ERROR in com.youth.banner.adapter.BannerAdapter.onBindViewHolderLandroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V: invalid opcode ba - invokedynamic requires --min-sdk-version >= 26 (currently 13)
     at com.android.dx.*Fcode.Simulator.fail(Simulator.java:947)
     at com.android.dx.*Fcode.Simulator.checkInvokeDynamicSupported(Simulator.java:848)
     at com.android.dx.*Fcode.Simulator.access$700(Simulator.java:43)
     at com.android.dx.*Fcode.Simulator$SimVisitor.visitConstant(Simulator.java:711)
     at com.android.dx.*Fcode.BytecodeArray.parseInstruction(BytecodeArray.java:780)
     at com.android.dx.*Fcode.Simulator.simulate(Simulator.java:117)
     at com.android.dx.*Fcode.Ropper.processBlock(Ropper.java:789)
     at com.android.dx.*Fcode.Ropper.doit(Ropper.java:744)
     at com.android.dx.*Fcode.Ropper.convert(Ropper.java:349)
     at com.android.dx.dex.*F*Franslator.processMethods(*Franslator.java:309)
     at com.android.dx.dex.*F*Franslator.translate0(*Franslator.java:150)
     at com.android.dx.dex.*F*Franslator.translate(*Franslator.java:102)
     at com.android.dx.command.dexer.Main.translateClass(Main.java:779)
     at com.android.dx.command.dexer.Main.access$2700(Main.java:85)
     at com.android.dx.command.dexer.Main$ClassTranslatorTask.call(Main.java:1901)
     at com.android.dx.command.dexer.Main$ClassTranslatorTask.call(Main.java:1886)
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
     at java.lang.Thread.run(Thread.java:748)
    ...at bytecode offset 0000002c
    locals[0000]: Lcom/youth/banner/adapter/BannerAdapter;
    locals[0001]: Landroidx/recyclerview/widget/RecyclerView$ViewHolder;
    locals[0002]: I
    locals[0003]: I
    stack[0002]: Landroid/view/View;
    stack[0001]: Lcom/youth/banner/adapter/BannerAdapter;
    stack[top0]: I
    ...while working on block 002a
    ...while working on method onBindViewHolderLandroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
    ...while processing onBindViewHolder (Landroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V
    ...while processing com/youth/banner/adapter/BannerAdapter.class
    1 error; aborting
错误: 建立所指定的安卓APK输出文件"E:\火山安卓\banner封装学习\_int\banner封装学习\debug\linker\banner.apk"失败
--- 项目"banner封装学习"编译或连接失败. 编译过程中共遇到了 0 个警告, 2 个错误.



作者: 创世魂    时间: 2021-8-3 07:45
你在搞封装吗,估计是什么东西和系统库冲突了,导致编译失败。
作者: xqnh520    时间: 2021-8-3 08:19
创世魂 发表于 2021-8-3 07:45
你在搞封装吗,估计是什么东西和系统库冲突了,导致编译失败。

嗯。学习中。不知道是什么原因。我翻译了一下,意思是要用SDK版为26实际是13  但是我把编译需求设置成26还是一样的错误,不知道问题在那里。
作者: xqnh520    时间: 2021-8-5 09:07
标题: 生成DEX文件失败
关于这个错误的提示以找到原因。com.android.dx.*Fcode.SimException: ERROR in com.youth.banner.adapter.BannerAdapter.onBindViewHolderLandroidx/recyclerview/widget/RecyclerView$ViewHolder;I)V: invalid opcode ba - invokedynamic requires --min-sdk-version >= 26 (currently 13)

是因为我在启动类里面使用了高级兼容窗口,在企鹅封装的“高级兼容系列基础类”备注中有说明。 (, 下载次数: 8) 而我在引入外部库的时候也用到了androidx库,产生了冲突。
(, 下载次数: 19)

解决方法是
(, 下载次数: 20)

作者: xqnh520    时间: 2021-8-5 09:12
但是出现新的问题。 (, 下载次数: 22)

意思提示控件没有这个属性。
我想应该是appcompat这个库 的原因。但是换了还是一样,不知道是在那里出了错。



作者: xqnh520    时间: 2021-8-5 09:14
网上找java的解决方案。不知道火山如何修改。研究中
(, 下载次数: 19)

作者: xqnh520    时间: 2023-3-16 19:37
xqnh520 发表于 2021-8-5 09:12
但是出现新的问题。

意思提示控件没有这个属性。

在.AAR文件里面找到R.txt文件,删出里面出现的对应单词




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4