- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
你好,我正在开发一个基于 launcher3 形式 ASOP 的启动器,它只在我所有没有运行 cyanogenmod 的设备上运行,当我尝试将它安装在运行 cyanogenmod 的设备上时,它会加载一分钟然后崩溃
这是 logcat 的内容:
05-03 10:32:26.665: E/AndroidRuntime(9845): FATAL EXCEPTION: launcher-loader
05-03 10:32:26.665: E/AndroidRuntime(9845): Process: com.d4a.tobiasnow, PID: 9845
05-03 10:32:26.665: E/AndroidRuntime(9845): java.lang.SecurityException: Permission Denial: writing com.android.launcher3.LauncherProvider uri content://com.android.launcher3.settings/favorites/18?notify=false from pid=9845, uid=10093 requires com.android.launcher3.permission.WRITE_SETTINGS, or grantUriPermission()
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.os.Parcel.readException(Parcel.java:1546)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:137)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.content.ContentProviderProxy.update(ContentProviderNative.java:568)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.content.ContentResolver.update(ContentResolver.java:1333)
05-03 10:32:26.665: E/AndroidRuntime(9845): at com.d4a.tobaisnow.LauncherModel$5.run(LauncherModel.java:526)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.os.Handler.handleCallback(Handler.java:739)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.os.Handler.dispatchMessage(Handler.java:95)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.os.Looper.loop(Looper.java:135)
05-03 10:32:26.665: E/AndroidRuntime(9845): at android.os.HandlerThread.run(HandlerThread.java:61)
我认为这是我项目 list 文件中的一个问题
所以这是我的 list 代码:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.d4a.tobiasnow"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="19" />
<permission
android:name="com.android.launcher3.permission.PRELOAD_WORKSPACE"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="system|signature" />
<permission
android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
android:description="@string/permdesc_install_shortcut"
android:label="@string/permlab_install_shortcut"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="dangerous" />
<permission
android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
android:description="@string/permdesc_uninstall_shortcut"
android:label="@string/permlab_uninstall_shortcut"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="dangerous" />
<permission
android:name="com.d4a.tobiasnow.permission.READ_SETTINGS"
android:description="@string/permdesc_read_settings"
android:label="@string/permlab_read_settings"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal" />
<permission
android:name="com.d4a.tobiasnow.permission.WRITE_SETTINGS"
android:description="@string/permdesc_write_settings"
android:label="@string/permlab_write_settings"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
android:protectionLevel="normal" />
<permission
android:name="com.d4a.tobiasnow.permission.RECEIVE_LAUNCH_BROADCASTS"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.BIND_APPWIDGET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
<uses-permission android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name="com.d4a.tobaisnow.LauncherApplication"
android:hardwareAccelerated="true"
android:configChanges="orientation"
android:icon="@mipmap/ic_launcher_home"
android:label="@string/application_name"
android:largeHeap="@bool/config_largeHeap"
android:supportsRtl="true" >
<activity
android:name="com.d4a.tobaisnow.Launcher"
android:clearTaskOnLaunch="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:stateNotNeeded="true"
android:theme="@style/Theme"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
</activity>
<activity
android:name="com.d4a.tobaisnow.ToggleWeightWatcher"
android:enabled="@bool/debug_memory_enabled"
android:icon="@mipmap/ic_launcher_home"
android:label="@string/toggle_weight_watcher"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="dialer2.DialerActivity"
android:screenOrientation="portrait">
</activity>
<activity android:name="dialer2.FragmentTab3"
android:screenOrientation="portrait">
</activity>
<activity
android:name="com.d4a.tobaisnow.WallpaperPickerActivity"
android:finishOnCloseSystemDialogs="true"
android:icon="@mipmap/ic_launcher_wallpaper"
android:label="@string/pick_wallpaper"
android:process=":wallpaper_chooser"
android:theme="@style/Theme.WallpaperCropper"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.SET_WALLPAPER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.d4a.tobaisnow.WallpaperCropActivity"
android:finishOnCloseSystemDialogs="true"
android:icon="@mipmap/ic_launcher_wallpaper"
android:label="@string/crop_wallpaper"
android:process=":wallpaper_chooser"
android:theme="@style/Theme.WallpaperCropper"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.service.wallpaper.CROP_AND_SET_WALLPAPER" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<!-- Debugging tools -->
<activity
android:name="com.d4a.tobaisnow.MemoryDumpActivity"
android:enabled="@bool/debug_memory_enabled"
android:excludeFromRecents="true"
android:icon="@mipmap/ic_launcher_home"
android:label="@string/debug_memory_activity"
android:theme="@android:style/Theme.NoDisplay"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.d4a.tobaisnow.MemoryTracker"
android:enabled="@bool/debug_memory_enabled" >
</service>
<!-- Intent received used to prepopulate the default workspace. -->
<receiver
android:name="com.d4a.tobaisnow.PreloadReceiver"
android:permission="com.android.launcher3.permission.PRELOAD_WORKSPACE" >
<intent-filter>
<action android:name="com.android.launcher3.action.PRELOAD_WORKSPACE" />
</intent-filter>
</receiver>
<!-- Intent received used to install shortcuts from other applications -->
<receiver
android:name="com.d4a.tobaisnow.InstallShortcutReceiver"
android:permission="com.android.launcher3.permission.INSTALL_SHORTCUT" >
<intent-filter>
<action android:name="com.android.launcher3.action.INSTALL_SHORTCUT" />
</intent-filter>
</receiver>
<!-- Intent received used to uninstall shortcuts from other applications -->
<receiver
android:name="com.d4a.tobaisnow.UninstallShortcutReceiver"
android:permission="com.android.launcher3.permission.UNINSTALL_SHORTCUT" >
<intent-filter>
<action android:name="com.android.launcher3.action.UNINSTALL_SHORTCUT" />
</intent-filter>
</receiver>
<!-- New user initialization; set up initial wallpaper -->
<receiver
android:name="com.d4a.tobaisnow.UserInitializeReceiver"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.USER_INITIALIZE" />
</intent-filter>
</receiver>
<receiver android:name="com.d4a.tobaisnow.PackageChangedReceiver" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_CHANGED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<data android:scheme="package" >
</data>
</intent-filter>
</receiver>
<!-- The settings provider contains Home's data, like the workspace favorites -->
<provider
android:name="com.d4a.tobaisnow.LauncherProvider"
android:authorities="com.d4a.tobiasnow.settings"
android:exported="true"
android:readPermission="com.d4a.tobiasnow.permission.READ_SETTINGS"
android:writePermission="com.d4a.tobiasnow.permission.WRITE_SETTINGS" />
<meta-data
android:name="android.nfc.disable_beam_default"
android:value="true" />
</application>
</manifest>
我把项目中的com.android.launcher3包重命名为:com.d4a.tobaisnow
我不知道问题出在哪里我已经尝试用谷歌搜索这个问题 5 个小时了,但没有成功
任何帮助/反馈都会很棒!
提前致谢
克里斯
最佳答案
您正在 LauncherModel
中的 Runnable
(大概是)第 526 行崩溃。当然,我们真的不知道这段代码是什么,因为您决定不知道提供导致崩溃的代码。
但是,从堆栈跟踪来看,您似乎正在尝试使用 com.android.launcher3.LauncherProvider
ContentProvider
,它由 com.android.launcher3.permission.WRITE_SETTINGS
权限。在标准的 Launcher3 构建中,that permission is signatureOrSystem
.您未通过 Launcher3 应用程序的签名 key 进行签名,并且您的应用程序可能未安装在系统分区上。因此,您不能拥有此权限。
关于android - 应用崩溃错误 Requires com.android.launcher3.permission.WRITE_SETTINGS, or grantUriPermission,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30016466/
和这个一样,但还是没弄明白。尝试了所有解决方案.... Maven error: Could not find or load main class org.codehaus.plexus.class
我想知道是否可以为 Android 开发 App Launcher 应用程序。我指的是不同供应商推出的应用程序启动器,即 Microsoft App Launcher、Google App Launc
我正在尝试运行以下示例单元测试用例 class ExampleUnitTest { @Test fun addition_is_Correct() { assertEq
我已经在 Git Bash(64 位)上使用 Maven 几个月了,突然它停止工作,并且现在在任何 Maven 命令上生成此错误: myuser@mypc MINGW64 ~ (master *) $
在我们的项目中,我们使用 IBM J9 Java VM 和旧版本的 Equinox OSGi 框架 (org.eclipse.osgi_3.6.1.R36x_v20100806.jar)。是否可以将此
我正在尝试在 Ubuntu 14.04 64 位中安装 spark 客户端 IM,但它会抛出错误 Could not find or load main class com.install4j.run
我已经通过 CLi 在 Linux Mint 上安装了最新的 maven-3.2.5安装详情如下: export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
我已在 Windows 7 上安装了最新的 maven-3.0.4: 安装详情如下: 安装路径: C:\apache-maven-3.0.4 环境变量是: M2_HOME C:\apache-mav
这个问题在这里已经有了答案: Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launc
我正在使用 Windows 10,并且我已按照说明中的说明设置了路径 设置 M2_HOME (E:\softwares\apache-maven-3.3.9) 设置 M2 (%M2_HOME%\bin
我已经安装了 maven 2。当我在应用程序根目录中使用 mvn clean 或 mvn install 时,它工作正常。 但是当我尝试在 bash 脚本中使用 maven install 时,出现了
我知道这个问题已经在几个问题中讨论过,但没有答案解决我的具体问题。 我已经安装了 Git bash 和 Maven,我正在尝试使用 Git bash 执行 Maven。它因上述错误而中止。 我的系统环
manifest 中 launcher activity 的 launchMode 是否被忽略?android 文档说默认 launchMode 是“标准”,但如果这将应用于应用程序的主要 Activ
进程文件: launcher or launcher.exe 进程名称: Webshots Launcher 进程类别:存在安全风险的进程 英文描述: launcher.exe is an
我是 Python 和 Pygame 的新手,现在我正在尝试用一些简单的代码打开一个测试窗口: import pygame, sys from pygame.locals import * pygam
我们正在使用 eclipse 的共享安装(RAD 7.0,在 Citrix 下)。我们需要允许每个开发人员提供 eclipse.ini 的本地副本。 “--launcher.ini”命令行开关应该允许
我一直在尝试在运行的 Eclipse session 中从命令行打开文件。基于documentation ,我应该可以做到 eclipse --launcher.openFile myfilename
我们正在使用 eclipse 的共享安装(RAD 7.0,在 Citrix 下)。我们需要允许每个开发人员提供 eclipse.ini 的本地副本。 “--launcher.ini”命令行开关应该允许
我正在尝试为 Minecraft 制作自定义启动器。我只是想让它从我自己的服务器下载主 jar 文件,没有别的。我反编译了一个文件(Launcher.java)并将下载网址从“https://s3.a
我正在开发一个可以读取汽车数据的应用程序。 当用户第一次打开它时,他必须选择他驾驶的汽车(这是在 MainActivity 中)。 我想做的是,用户在打开应用程序时不能总是选择他的车。 App应在用户
我是一名优秀的程序员,十分优秀!