AS3.5.3下Error inflating class com.baidu.mapapi.map.MapView的解决方法

问题描述

  按照树中11.4.1节开始调用百度LBS API显示地图时,程序出现闪退现象,logcat中有以下信息

截图

可能原因

  参考网上博文,导致这种情况的原因大概有这几个:
  1.开发包勾选的服务不包含基础地图(含室内地图)
  2.API配置信息有误
  3.没有在setContentView(R.layout.activity_main);之前调用SDKInitializer.initialize(getApplicationContext());
  4.添加jar包会导致其目录下的assert文件夹失效或者消失(疑惑)

解决方法

  1.参照百度提供的方案下载开发包、完成配置,百度官方Android Studio配置方法
  
  2.确保MainActivity.java中的两条语句的先后关系如下

    SDKInitializer.initialize(getApplicationContext());   //先
    setContentView(R.layout.activity_main);   //后

  3.如果确保上述两步无误后,程序依旧闪退,可尝试将BaiduLBS_Android.jar目录下的assert文件夹复制到src/main/

我的目录结构和配置信息
项目目录结构
<!--AndroidManifest.xml -->
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lbstest">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!--<uses-permission android:name="android.permission.WRITE_SETTINGS" />-->

    <application
        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">
     
        <meta-data android:name="com.baidu.lbsapi.API_KEY"  //LBS
            android:value="你的AK" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <service     //LBS
            android:name="com.baidu.location.f"
            android:enabled="true"
            android:process=":remote">
        </service>
    </application>

</manifest>
//app/build.gradle
apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.lbstest"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {      //添加的配置信息
        main {
            jniLibs.srcDir 'libs'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation files('libs\\BaiduLBS_Android.jar')     //自动生成的LBS配置信息
}

参考自我在西边等太阳

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容