美文网首页
百度语音合成出错问题

百度语音合成出错问题

作者: waiwaaa | 来源:发表于2020-06-09 12:21 被阅读0次

    今天运行程序时,报出下面的错误,出现崩溃现象。

     java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair; 
    
    Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.message.BasicNameValuePair" on path: DexPathList[[zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/base.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_dependencies_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_resources_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_0_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_1_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_2_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_3_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_4_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_5_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_6_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_7_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_8_apk.apk", zip file "/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/lib/arm, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/base.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_dependencies_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_resources_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_0_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_1_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_2_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_3_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_4_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_5_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_6_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_7_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_8_apk.apk!/lib/armeabi, /data/app/voice.bingo.com.voicedemo-Aw98lZt-4zhVCHzVbHay1w==/split_lib_slice_9_apk.apk!/lib/armeabi, /system/lib, /product/lib]]
    

    原因:

    从日志可以看出是/voice.bingo.com.voicedemo是语音包缺少类文件。出现此问题主要是 apache 的 http 库在android 9.0删除导致的,出现此问题应该是使用了 apache 的http库。

    修复:

    在application加上

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

    关于uses-library的用法

    语法

    <uses-library  
         android:name="string"
                 android:required=["true" | "false"] />被包含于<application>中例如:
    
    <application
            ........
        ........>
            <uses-library
                android:name="。。。。。。。"
                android:required="true" />
    </application>
    

    说明
    这个元素用于指定该应用程序必须链接的共享类库。这个元素告诉系统该应用程序包的类装载器中所包含的类库代码。
    Android的所有包(如andorid.appandroid.contentandroid.viewandroid.widget等)都在应用程序自动链接的默认类库中。但是,有些包是在于独立的类库中,它们不能被自动的链接到应用程序包中,要查看这些包的文档,以确定要把哪些类库包含到包的代码中。
    这个元素也会影响该应用程序在特殊设备上的安装,以及应用程序在Google Play上的可用性。
    安装
    如果在该应用的清单中出现这个元素,并且它的android:required属性被设置为true,那么除非该类库在用户的设备上存在,否则PackageManager框架不会让用户安装这个应用程序。

    属性android:name
    这个属性用于指定类库的名称。这个名称是在对应的类库文档中提供的。例如:android.test.runner库就是包含Android测试类的一个程序包。
    android:required
    (默认值是true。这个属性在API Level 7中被引入)
    这个属性用于指定应用程序是否需要有android:name属性所指定的类库:
    true:没有这个库应用程序无法工作。如果用户设备设备上没有这个类库,系统不允许该应用程序安装在这个设备上。
    false:如果该类库存在,则应用程序能够使用这个类库,但是如果有必要,也可以设计成没有该类库,应用程序也能够工作。系统会允许应用程序安装,即使该类库不存在。如果使用false,就要在运行时对类库的有效性进行必要的检查。对于类库的检查,可以使用反射机制来判断一个具体的类是否有效。

    AndroidManifest.xml文件中(uses-library)详解

    相关文章

      网友评论

          本文标题:百度语音合成出错问题

          本文链接:https://www.haomeiwen.com/subject/wjrstktx.html