小编Mic*_*rte的帖子

Android权限.INTERACT_ACROSS_USERS拒绝

我有一个奇怪的Android权限拒绝,这是它:

java.lang.SecurityException: Permission Denial: isUserRunning() from pid=1078, uid=10284 requires android.permission.INTERACT_ACROSS_USERS
Run Code Online (Sandbox Code Playgroud)

我还没有发现任何关于android.permission.INTERACT_ACROSS_USERSandroid.permission.INTERACT_ACROSS_USERS_FULL

这是完整的logcat:

java.lang.SecurityException: Permission Denial: isUserRunning() from pid=25403, uid=10310 requires android.permission.INTERACT_ACROSS_USERS
    at android.os.Parcel.readException(Parcel.java:1693)
    at android.os.Parcel.readException(Parcel.java:1646)
    at android.app.ActivityManagerProxy.isUserRunning(ActivityManagerNative.java:7000)
    at android.os.UserManager.isUserUnlocked(UserManager.java:1069)
    at android.os.UserManager.isUserUnlocked(UserManager.java:1063)
    at com.android.launcher3.compat.UserManagerCompatVN.isUserUnlocked(UserManagerCompatVN.java:39)
    at com.android.launcher3.LauncherModel$LoaderTask.loadWorkspace(LauncherModel.java:1759)
    at com.android.launcher3.LauncherModel$LoaderTask.loadAndBindWorkspace(LauncherModel.java:1387)
    at com.android.launcher3.LauncherModel$LoaderTask.run(LauncherModel.java:1486)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

我已将此添加到我的清单中:

<permission android:name="android.permission.INTERACT_ACROSS_USERS" android:protectionLevel="signature"/>
<permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature"/>
Run Code Online (Sandbox Code Playgroud)

java android android-permissions

27
推荐指数
2
解决办法
9155
查看次数

如何在自定义启动器上安装图标包?

我正在尝试在我的自定义启动器上安装图标包,我已经阅读了这个说明如何安装图标包但我无法理解如何使用该类,这就是我所做的:

IconPackManager ic = new IconPackManager();
HashMap<String, IconPackManager.IconPack> map = new HashMap<String, IconPackManager.IconPack>(ic.getAvailableIconPacks(false));
Iterator it = map.entrySet().iterator();
Drawable d = null;
String packName = null;
IconPackManager.IconPack packIcon = null;
    while (it.hasNext()) {
       Map.Entry pair = (Map.Entry)it.next();
       packName = (String)pair.getKey();
       packIcon = (IconPackManager.IconPack)pair.getValue();
       d = packIcon.getDrawableIconForPackage(packName, iconDrawable);
       setIcon(d);
    }
Run Code Online (Sandbox Code Playgroud)

java android android-launcher

21
推荐指数
1
解决办法
917
查看次数

使用viewpager折叠ToolBar布局

我正在使用带有viewpager的CollapsingBarLayout,并且viewpager的片段具有listview,gridview.

这是我的代码:

    <?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.bigsteptech.seandroidnativeapp.classes.modules.common.ViewGroupEvent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleTextAppearance="@style/TransparentText">

            <FrameLayout
                android:id="@+id/carouselLayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_collapseMode="parallax">

                <ImageView
                    android:id="@+id/coverImage"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="centerCrop"/>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:gravity="bottom"
                    android:orientation="vertical"
                    android:layout_gravity="bottom"
                    android:padding="@dimen/profile_image_margin"
                    android:background="@drawable/gradient_bg"
                    android:layout_height="wrap_content">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/profile_image_margin"
                        android:textSize="@dimen/text_size_xlarge"
                        android:textStyle="bold"
                        android:textColor="@color/white"
                        android:id="@+id/content_title"/>

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_marginLeft="@dimen/profile_image_margin"
                        android:layout_height="wrap_content">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textStyle="bold"
                            android:textColor="@color/white"
                            android:textSize="@dimen/text_size_medium"
                            android:id="@+id/category_title"/>

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textStyle="bold"
                            android:layout_toRightOf="@+id/category_title"
                            android:layout_marginLeft="@dimen/profile_image_margin"
                            android:textColor="@color/white"
                            android:textSize="@dimen/text_size_medium"
                            android:id="@+id/memberCount"/>

                    </RelativeLayout>


                </LinearLayout>

            </FrameLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar" …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager android-collapsingtoolbarlayout

16
推荐指数
2
解决办法
2万
查看次数

使用Android 6.0未经许可捕获图像

我需要让用户使用Android 6.0拍摄照片(来自图库或相机应用).

因为我不需要控制相机,所以我想使用这里描述的意图:

但是,如果您不需要此类控件,则可以使用ACTION_IMAGE_CAPTURE意图来请求图像.当您启动意图时,系统会提示用户选择相机应用程序(如果还没有默认的相机应用程序),该应用程序将拍摄照片.相机应用程序将图片返回到应用程序的onActivityResult()方法.

https://developer.android.com/preview/features/runtime-permissions.html

但是对于这个ACTION_IMAGE_CAPTURE,你需要将额外的"MediaStore.EXTRA_OUTPUT"这个Uri 填充到一个临时文件中(没有这个参数我将只有一个缩略图).此临时文件必须位于外部存储中(可由相机应用程序访问).您需要WRITE_EXTERNAL_STORAGE权限才能在外部存储上创建文件.

因此,如果没有android.permission.CAMERAandroid.permission.WRITE_EXTERNAL_STORAGE 权限,则无法通过原生对话框/应用程序捕获图像.那是对的吗?

谢谢

permissions camera android android-intent android-6.0-marshmallow

13
推荐指数
2
解决办法
1万
查看次数

编译AIDL时出错

我正在尝试编译.aidl和生成.java但是:

Error:Execution failed for task ':library:compileReleaseAidl'.
> java.lang.RuntimeException: com.android.ide.common.process.ProcessException:
Error while executing 'C:\Users\Michele\AppData\Local\Android\sdk\build-tools\25.0.0\aidl.exe'
with arguments {-pC:\Users\Michele\AppData\Local\Android\sdk\platforms\android-25\framework.aidl
-oC:\Users\Michele\workspace\AndroidLib\library\build\generated\source\aidl\release
-IC:\Users\Michele\workspace\AndroidLib\library\src
-IC:\Users\Michele\workspace\AndroidLib\library\src\release\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\appcompat-v7\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-v4\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-fragment\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-media-compat\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-core-ui\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-core-utils\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\animated-vector-drawable\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-vector-drawable\25.0.1\aidl
-IC:\Users\Michele\workspace\AndroidLib\library\build\intermediates\exploded-aar\com.android.support\support-compat\25.0.1\aidl
-dC:\Users\Michele\AppData\Local\Temp\aidl3070615992051288022.d
C:\Users\Michele\workspace\AndroidLib\library\src\IRemoteShortcutService.aidl}
Run Code Online (Sandbox Code Playgroud)

我用这个 build.gradle

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

group='com.github.michelelacorte'

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.0'

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 25
        versionCode 2
        versionName "0.2.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    sourceSets {
        main {
            aidl.srcDirs = ['src/main/aidl']
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' …
Run Code Online (Sandbox Code Playgroud)

java android aidl android-studio build.gradle

11
推荐指数
1
解决办法
5658
查看次数

Spring启动JSP错误:NoClassDefFoundError

每次我尝试运行配置了JSP的spring boot应用程序时都会出现此错误:

java.lang.NoClassDefFoundError: javax/servlet/ServletContext
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
.............
[more errors/exceptions]
.............
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContext
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
Run Code Online (Sandbox Code Playgroud)

我试过运行示例:spring-boot-sample-web-jspspring-boot-sample-web-jsp

这些样品的结果是相同的.我使用IntelliJ IDEA运行应用程序并且没有IDEA为什么它不起作用.

java spring jsp spring-mvc spring-boot

10
推荐指数
1
解决办法
4937
查看次数

Android资料设计NestedScrollView/CollapsingToolbarLayout打开键盘的奇怪行为

我试图使用漂亮的cheesesquare项目在android中实现一个材质可滚动的表单

https://github.com/chrisbanes/cheesesquare

但是当我尝试将一个EditText添加到NestedScrollView时,当keybord打开时,工具栏似乎取消固定(在没有输入的情况下没有按预期工作).

这是我的布局

    <?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ …
Run Code Online (Sandbox Code Playgroud)

android material-design android-collapsingtoolbarlayout

8
推荐指数
2
解决办法
2248
查看次数

ProGuard导致应用程序滞后

我正在尝试使用proguard来混淆代码,所以我minify在发布版本类型中启用了:

buildTypes {
    debug {
        minifyEnabled false
    }
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt')
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我生成'release apk'并且在我安装它之后,应用程序运行速度变慢(滞后)..为什么在启用minify时会发生这种情况?这是我的依赖:

dependencies {
    compile 'com.android.support:support-v4:25.3.1'
    compile 'com.android.support:recyclerview-v7:25.3.1'
    compile 'com.android.support:palette-v7:25.3.1'
    compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-2'
    compile 'com.jrummyapps:colorpicker:2.1.6'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    compile project(':library')

    testCompile 'junit:junit:4.12'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
    androidTestCompile 'com.android.support:support-annotations:25.3.1'
}
Run Code Online (Sandbox Code Playgroud)

这是我的 proguard-android.txt

# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

# Optimization is turned off by default. Dex does not like code run
# through the …
Run Code Online (Sandbox Code Playgroud)

java android minify android-proguard

8
推荐指数
1
解决办法
518
查看次数

Gradle sync失败,不允许直接使用'debugCompile'

我已经更新了Android Studio 3.0 Canary 1,因此我更新了我的项目gradle 4.0-milestone-1并构建了工具gradle 3.0.0-alpha1,当我尝试同步项目时,会发生以下错误:

错误:无法确定任务':extractIncludeAospProto'的依赖关系.

不允许直接解析配置'debugCompile'

有了这个 stacktrace

* Exception is:
org.gradle.api.GradleException: Could not determine the dependencies of task ':extractIncludeDebugProto'.
    at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.resolve(CachingTaskDependencyResolveContext.java:67)
    at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:55)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.addToTaskGraph(DefaultTaskExecutionPlan.java:132)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.addTasks(DefaultTaskGraphExecuter.java:112)
    at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:47)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
    at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:44)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
    at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
    at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:36)
    at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraphAction.execute(DefaultGradleLauncher.java:213)
    at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraphAction.execute(DefaultGradleLauncher.java:210)
    at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:114)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:172)
    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:43)
    at org.gradle.initialization.DefaultGradleLauncher$1.run(DefaultGradleLauncher.java:121)
    at org.gradle.internal.work.DefaultWorkerLeaseService$2.execute(DefaultWorkerLeaseService.java:124)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:115)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:98)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-gradle-plugin

7
推荐指数
1
解决办法
2435
查看次数

备份/还原共享首选项Android

我正在尝试备份/还原我的应用程序的共享首选项,我使用Android备份服务执行了以下步骤:

Manifest.xml<application>标签

<meta-data android:name="com.google.android.backup.api_key" android:value="My Key" />
Run Code Online (Sandbox Code Playgroud)

添加了此类:

public class MyBackupAgent extends BackupAgentHelper {

    // The name of the SharedPreferences file
    static final String PREFS = "my_preferences";


    @Override
    public void onCreate() {
        SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
        addHelper(Utilities.SETTINGS_KEY, helper);
    }

}
Run Code Online (Sandbox Code Playgroud)

当将值设置为共享首选项时,我这样做:

BackupManager backupManager = new BackupManager(context);
backupManager.dataChanged();
Run Code Online (Sandbox Code Playgroud)

但是,如果我卸载/重新安装应用程序,更改将不适用...

java android sharedpreferences android-backup-service

5
推荐指数
1
解决办法
1085
查看次数