0
当我将targetSDK更改为大于22时,编译器不允许直接使用权限。权限必须由用户来提供,我不得不使用下面的代码:即使在添加所有库后仍未找到类“android.support.v4.content.ContextCompat”
if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
MY_PERMISSSIONS_REQUEST_FINE_LOCATION);
}
但我不断收到以下错误
Didn't find class "android.support.v4.content.ContextCompat"
我添加了所有必需的文件ContextCompat和ActivityCompat但我每次都会收到这个错误。这是我的build.gradle
[编辑]添加整个文件的gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.2.0'
compile files('libs/classes.jar')
compile 'com.android.support:support-v4:25.2.0'
}
//task to delete the old jar
task deleteOldJar(type: Delete) {
delete '/Users/kushagragupta/Desktop/Kushagra/STURFEE/Sturfee.Unity.Mobile.IMUGPSTest/Assets/AndroidPlugin.jar'
}
//task to export contents as jar
task exportJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('/Users/kushagragupta/Desktop/Kushagra/STURFEE/Sturfee.Unity.Mobile.IMUGPSTest/Assets/')
include('classes.jar')
///Rename the jar
rename('classes.jar', 'AndroidPlugin.jar')
}
exportJar.dependsOn(deleteOldJar, build)
我一直停留在这一点,因为最后2天并不知道还有什么可以解决这个问题。
如何使用'ActivityCompat'来检查权限,它是否会抛出相同的错误(ActivityCompat是一个直接的子类)? https://developer.android.com/reference/android/support/v4/app/ActivityCompat.html –
显示整个应用程序gradle文件 –
编辑@DanielNugent – Kushagra