首页 / 浏览问题 / 移动GIS / 问题详情
Environment.initialization(this)空指针异常
82EXP 2020年06月03日

使用产品:supermap-imobile-10.0.1

操作系统:win10 x64(开发)

运行系统:荣耀v9 android 9,红米note7 android 9

问题描述:

Environment.initialization(this)

异常:java.lang.NullPointerException: Attempt to get length of null array

错误代码:

Environment.setLicensePath("$rootPath/SuperMap/license/")


Environment.setTemporaryPath("$rootPath/SuperMap/temp/")
Environment.setWebCacheDirectory("$rootPath/SuperMap/WebCatch")

Environment.initialization(this)---空指针异常

配置信息:

manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:installLocation="preferExternal"
    package="com.xtkj.xtonemap">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <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">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" android:configChanges="keyboardHidden|orientation|screenSize" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        tools:ignore="ManifestOrder"/>
</manifest>

module:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"

    defaultConfig {
        applicationId "com.xtkj.xtonemap"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//        ndk {
//            abiFilters 'armeabi-v7a'
//
//        }

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

}
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.3.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/com.supermap.data_v1001.jar')
    implementation files('libs/com.supermap.mapping_v1001.jar')
    implementation files('libs/com.supermap.realspace_v1001.jar')
}

imageimage

备注:按照网上和官网上相同问题所提供的解决方法测试,均无效果

2 个回答

在经历过几天的问题查找,终于知道是哪里的问题了,关于我的问题的问题原因,是因为,so依赖所在文件夹与以下配置中的名称不一致导致的,将文件夹名称修改成armeabi-v7a即可,即如若需要做如下配置,文件夹名称和so依赖所在文件夹名称必须一致

ndk {
    abiFilters 'armeabi-v7a'

}

82EXP 2020年06月03日
您好。1.在grandle文件里面添加ndk配置 2.确保设置了动态权限,可以在设备权限管理中看一下app的几个权限是否都开启
9,232EXP 2020年06月03日
你好,ndk这个解决方案已经测试过,解决不了问题,权限的话,存储,设备信息,位置信息三个权限都是开启的状态
将targetSdkVersion的版本改成28或者27.。如果还是不行麻烦把详细的错误日志贴出来
targetSdkVersion改过,也没用,详细的错误信息如下:

加上这个​​​​​​

...