首页 / 浏览问题 / 移动GIS / 问题详情
获取不到许可
10EXP 2020年08月28日
Process: com.example.daohangapp, PID: 20010
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.daohangapp/com.example.daohangapp.MainActivity}: java.lang.IllegalStateException: LicenseStatus[
    Status = 许可不存在
    Type = 正式许可
    Version = 0
    SartDate = 2020-08-28
    ExpireDate = 2020-08-28
    ]

请问一下这是为什么啊,我的许可文件没有过期。路径也正确  但是真机运行时闪退。报这个错误

1个回答

您好,您看一下您的程序在设备里面是否有权限,在Android6.0设备以上需要设置动态权限了。 调试一下代码看能否获取到许可文件
9,232EXP 2020年08月28日

权限是没有问题的

1路径我看着也没问题

这个动态权限你是写在环境初始化之后的, 您需要先设置权限再去初始化。你可以调试你的代码能不能获取到许可文件

放到前面也不对

放在前面了

您看一下许可路径是否正确,调试一下代码能不能找到这个文件。还有对照一下帮助文档的入门程序,看一下您的grandle文件是否都配置正确

路径是没有问题的,可以找到许可文件

grandle

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.0"

    defaultConfig {
        applicationId "com.example.appappappp"
        minSdkVersion 21
        targetSdkVersion 30
        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']
        }
    }

}

这两个都添加了

Android10.0是有特殊的存储机制,采用的是沙盒机制。在Android/data里面专门有存储各个app的文件路径。如果需要使用Android10,您可以这样设置:
 

final String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();

File dirpath = this.getExternalFilesDir("");

String fileString = dirpath + File.separator;

//设置许可路径

//Environment.setLicenseType(LicenseType.UUID);

Environment.setLicensePath(fileString + "/License/");

Environment.setTemporaryPath(fileString + "/SuperMap/temp/");

Environment.setWebCacheDirectory(fileString + "/SuperMap/WebCatch");
或者直接设置targetSDKVersion为28
成功了 谢谢老师麻烦了
...