Android9.0_P:ClassNotFoundException:Didn't find class "org.apache.http.ProtocolVersion" on path:

今天在运行签名好的apk 在android9.0的小米8上面 出现打开闪退。
在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。 从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。
    要继续使用 Apache HTTP 客户端,以 Android 9 及更高版本为目标的应用可以向其 AndroidManifest.xml的application节点下 添加以下内容:
<uses-library
    android:name="org.apache.http.legacy"
    android:required="false" />

 

在application下面添加 uses-library。即可

<application
            android:name=".MyApp"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">

            <uses-library
                android:name="org.apache.http.legacy"
                android:required="false" />

            <activity
                android:name=".activity.SplashActivity"
                android:exported="true"
                android:screenOrientation="portrait"
                android:theme="@style/Splash">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>

        </application>

注:拥有最低 SDK 版本 23 或更低版本的应用需要 android:required="false" 属性,因为在 API 级别低于 24 的设备上,org.apache.http.legacy 库不可用。 (在这些设备上,Apache HTTP 类在 bootclasspath 中提供。)

作为使用运行时 Apache 库的替代,应用可以在其 APK 中绑定自己的 org.apache.http 库版本。 如果进行此操作,您必须将该库重新打包(使用一个类似 Jar Jar 的实用程序)以避免运行时中提供的类存在类兼容性问题。

报错日志:

Failed resolution of: Lorg/apache/http/ProtocolVersion;
Didn't find class "org.apache.http.ProtocolVersion" on path: DexPathList[[zip file "/data/app/xxx.xxx.xxx-w3A58rcDxu_HjNKhzjBcmQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.gushenbei.android-w3A58rcDxu_HjNKhzjBcmQ==/lib/arm, /data/app/xxx.xxx.xxx-w3A58rcDxu_HjNKhzjBcmQ==/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]

 

同时如果你还有webView 的问题,我遇到并记录的如下

希望能解决您暂时的疑惑,纸上得来终觉浅,书到用时方恨少。共勉!

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
### 回答1: 这个错误是因为Java程序在运行时无法找到需要的类org.apache.batik.transcoder.tra。这个异常通常发生在使用了Batik库中的转码器时。 Java.lang.ClassNotFoundException是一个运行时异常,表示Java虚拟机在类路径中无法找到指定的类。在这种情况下,可能存在以下几种可能原因: 1. 缺少依赖库:如果程序使用了Batik库,但是没有将该库添加到类路径中,就会导致找不到相关的类。解决方法是将Batik库的JAR文件添加到项目的类路径中。 2. 包名错误:可能是程序中引用的类的包名写错了,或者引用的类不在正确的位置。需要检查程序中的类引用,确保包名和类文件的实际位置匹配。 3. 版本冲突:如果程序依赖的第三方库出现了版本冲突,可能会导致类找不到的错误。解决方法是检查依赖关系,确保所使用的库和版本兼容。 为了解决这个问题,可以按照以下步骤进行操作: 1. 检查项目的依赖关系,确保Batik库已经正确添加到项目中,并且版本与程序兼容。 2. 检查程序引用的类和包名,确保正确引用了org.apache.batik.transcoder.tra类。 3. 如果依赖库版本相同,但仍然出现类找不到的错误,可能是因为类没有正确加载。可以尝试清除并重新构建项目,确保所有依赖库都正确加载。 通过以上步骤,应该能够解决这个异常并使程序正常运行。 ### 回答2: 出现如上所示的错误,是由于Java程序在运行过程中无法找到指定的类org.apache.batik.transcoder.tra。 这种错误通常是由于缺少或错误配置了相关的依赖引起的。首先,要确保在项目中添加了正确的依赖项。可以使用Maven等构建工具来管理项目的依赖关系,确保已经正确添加了org.apache.batik.transcoder的依赖。 如果已经正确配置了依赖项,但仍然出现该错误,可能是由于依赖项的版本不兼容或者缺少运行时的环境。可以尝试更新依赖项的版本,并检查运行环境是否满足依赖的要求。 另外,还有可能是由于编译错误或者类路径配置错误导致的。在编译和运行时,需要确保编译器和JVM能够找到该类。可以检查编译器的配置和类路径设置,确保相关的class文件可以被正确找到。 总之,在解决这个错误时,需要检查依赖项的配置、版本兼容性、运行环境和类路径等方面,以确保能够正确找到所需的类。 ### 回答3: 这个错误是由于Java无法找到所需的类org.apache.batik.transcoder.tra而引起的。在Java中,ClassNotFoundException意味着虚拟机无法在类路径中找到所需的类。 这个错误通常发生在以下几种情况下: 1.未正确配置类路径:当安装或配置Java时,可能会出现错误或遗漏,导致所需的类文件无法被虚拟机找到。解决方法是检查类路径是否正确设置,并确保所需的类文件位于正确路径下。 2.缺少依赖库:这个错误可能是由于项目缺少Batik库的依赖。Batik是用于处理矢量图形转换的类库,如果缺少相关的Jar文件,则会导致该错误。需要确保项目中包含了Batik库的正确版本,并将其正确引入项目中。 3.版本不兼容:如果使用的是不兼容的版本,可能会导致该错误。检查项目和Batik库的版本是否匹配,并确保它们之间的兼容性。 解决这个错误的方法包括: 1.检查并确保类路径正确配置,所有相关的类文件都能被虚拟机找到。 2.确保项目中包含了正确版本的Batik库,并将其正确引入项目中。 3.升级或降级项目和Batik库的版本,确保它们之间兼容。 总结起来,java.lang.ClassNotFoundException: org.apache.batik.transcoder.tra错误是由于找不到所需的类而引起的。解决该问题的方法包括检查类路径配置、检查依赖库和版本兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷冷清清里风风火火是我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值