这是我的gradle文件。
它在棉花糖下工作正常,但在棉花糖中它不起作用,我没有收到任何错误。
android {
compileSdkVersion 25
buildToolsVersion '25.0.3'
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.example.project"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
dependencies {
classpath 'io.fabric.tools:gradle:1.21.7'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.gms:play-services:8.1.0'
compile 'org.apache.httpcomponents:httpcore:4.4.4'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'eu.the4thfloor.volley:com.android.volley:2015.05.28'
compile 'com.google.code.gson:gson:2.7'
compile 'com.google.maps.android:android-maps-utils:0.4.3'
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
从 android 6.0(API 级别 23)开始,您需要在清单中声明权限,并在运行时中检查 anc 请求它们。
按照谷歌的本教程进行操作:https://developer.android.com/training/permissions/requesting.html
或者您可以使用我的库轻松处理它们。 https://github.com/nabinbhandari/Android-Permissions
使用这样的代码!例如,此代码请求用户允许在 AudioRecordFragment 中录制音频。
我认为您在权限方面有问题。你没有写出你的应用程序到底做了什么!
@TargetApi(Build.VERSION_CODES.M)
private void tryStart() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
final int checkAudio = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.RECORD_AUDIO);
final int checkStorage = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (checkAudio != PackageManager.PERMISSION_GRANTED || checkStorage != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.RECORD_AUDIO)) {
showNeedPermissionsMessage();
} else if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
showNeedPermissionsMessage();
} else {
requestPermissions(new String[]{
Manifest.permission.RECORD_AUDIO,
Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_PERMISSIONS);
}
} else {
DoSomeThing();
}
} else {
DoSomeThing();
}
}
@Override
public void onRequestPermissionsResult(final int requestCode, @NonNull final String[] permissions, @NonNull final int[] grantResults) {
switch (requestCode) {
case REQUEST_CODE_PERMISSIONS:
boolean userAllowed = true;
for (final int result : grantResults) {
userAllowed &= result == PackageManager.PERMISSION_GRANTED;
}
if (userAllowed) {
DoSomeThing();
} else {
showNeedPermissionsMessage();
}
break;
default:
break;
}
}