2024-07-11 升级问题:Android编译时出现 Didn‘t find class “org.apache.http.params.BasicHttpParams“

 2024-07-11 升级问题记录: 

编译时出现问题,无法显示arcgis的mapview控件,具体如下:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{rs.tabletcropland/com.FJDZYG.GIS.MainActivity}: android.view.InflateException: Binary XML file line #35 in rs.tabletcropland:layout/main: Binary XML file line #35 in rs.tabletcropland:layout/main: Error inflating class com.esri.android.map.MapView
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4800)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:5018)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:123)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:3094)
        at android.os.Handler.dispatchMessage(Handler.java:117)
        at android.os.Looper.loopOnce(Looper.java:205)
        at android.os.Looper.loop(Looper.java:293)
        at android.app.ActivityThread.loopProcess(ActivityThread.java:9998)
        at android.app.ActivityThread.main(ActivityThread.java:9987)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240)
     Caused by: android.view.InflateException: Binary XML file line #35 in rs.tabletcropland:layout/main: Binary XML file line #35 in rs.tabletcropland:layout/main: Error inflating class com.esri.android.map.MapView
     Caused by: android.view.InflateException: Binary XML file line #35 in rs.tabletcropland:layout/main: Error inflating class com.esri.android.map.MapView
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:868)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1020)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:975)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1137)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1098)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:696)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:540)
        at com.android.internal.policy.HwPhoneLayoutInflater.inflate(HwPhoneLayoutInflater.java:138)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:487)
        at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:593)
        at com.android.internal.policy.HwPhoneWindow.setContentView(HwPhoneWindow.java:365)
        at android.app.Activity.setContentView(Activity.java:3736)
        at com.FJDZYG.GIS.MainActivity.onCreate(MainActivity.java:128)
        at android.app.Activity.performCreate(Activity.java:8592)
        at android.app.Activity.performCreate(Activity.java:8565)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1344)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4768)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:5018)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:123)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:3094)
        at android.os.Handler.dispatchMessage(Handler.java:117)
        at android.os.Looper.loopOnce(Looper.java:205)
        at android.os.Looper.loop(Looper.java:293)
        at android.app.ActivityThread.loopProcess(ActivityThread.java:9998)
        at android.app.ActivityThread.main(ActivityThread.java:9987)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586)
E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1240)
     Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/params/BasicHttpParams;
        at com.esri.core.internal.io.handler.c.<clinit>(SourceFile:218)
        at com.esri.core.internal.io.handler.c.a(SourceFile:189)
        at com.esri.core.internal.RuntimeHelper.c(SourceFile:104)
        at com.esri.core.internal.RuntimeHelper.initialize(SourceFile:51)
        at com.esri.android.map.MapSurface.<clinit>(SourceFile:68)
        at com.esri.android.map.MapView.a(SourceFile:586)
        at com.esri.android.map.MapView.<init>(SourceFile:621)
        	... 32 more
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.params.BasicHttpParams" on path: DexPathList[[zip file "/data/app/~~NeV1e6oii43XZZQ-8uyJfw==/rs.tabletcropland-LWlKKgzKCTuVnzp0fX2dAw==/base.apk"],nativeLibraryDirectories=[/data/app/~~NeV1e6oii43XZZQ-8uyJfw==/rs.tabletcropland-LWlKKgzKCTuVnzp0fX2dAw==/lib/arm, /data/app/~~NeV1e6oii43XZZQ-8uyJfw==/rs.tabletcropland-LWlKKgzKCTuVnzp0fX2dAw==/base.apk!/lib/armeabi-v7a, /system/lib, /system/system_ext/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        	... 39 more

解决方法:

从日志中可以看出,问题出在com.esri.android.map.MapView的初始化过程中。具体原因是找不到org.apache.http.params.BasicHttpParams类。这个类是Apache HttpClient库的一部分,但在Android应用中,通常使用org.apache.http.impl.client.DefaultHttpClient来代替。

要解决这个问题,你需要在你的项目中添加Apache HttpClient库的依赖。如果你使用的是Gradle构建系统,可以在build.gradle文件中添加以下依赖:

dependencies {
    implementation 'org.apache.httpcomponents:httpclient:4.5.13'
}

然后同步Gradle项目,重新编译并运行你的应用。

问题顺利解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值