- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在使 PreferenceScreen
和 applicationIdSuffix
协同工作时遇到了一些问题。
假设我的应用程序包/applicationId
在 Gradle 和 AndroidManifest.xml 中是 com.myapp
,并且 applicationIdSuffix
定义为:
buildTypes {
debug {
applicationIdSuffix '.dev'
}
}
如果我定义一个 PreferenceScreen
如下
<PreferenceScreen
android:key="key_about" android:summary="something" android:title="About">
<intent
android:targetClass="com.myapp.activities.AboutActivity"
android:targetPackage="com.myapp" />
</PreferenceScreen>
启动应用程序的调试版本时出现异常
java.lang.SecurityException: Permission Denial: starting Intent { (...) } from ProcessRecord{(...)} (pid=13658, uid=10105) not exported from uid 10067
这是有道理的,因为我正在尝试从不同的应用程序启动 Activity 。问题是我找不到让 Android 启动正确 Activity 的方法。
如果我将 targetClass
更改为“.activities.AboutActivity”,它仍然找不到 Activity
ActivityNotFoundException: Unable to find explicit activity class {com.myapp.dev/.activities.AboutActivity}
我什至尝试用正确的包为每个版本定义一个值:
android:targetClass="@string/classname"
android:targetPackage="@string/packagename"
但它找不到合适的 Activity :
ActivityNotFoundException: Unable to find explicit activity class
{com.myapp.dev/com.myapp.dev.activities.AboutActivity};
have you declared this activity in your AndroidManifest.xml?
那么我怎样才能让它发挥作用呢?
最佳答案
您的困惑来自于 applicationIdSuffix
仅更改应用程序的包名称(其唯一 ID),但不会更改应用程序内部类的 java 包名称,包括您的 Activity .
这意味着您应该在您的偏好中声明:
android:targetClass="com.myapp.activities.AboutActivity"
android:targetPackage="@string/packagename"
其中 targetClass
始终相同,而 targetPackage
取决于您的构建类型,可以是 com.myapp
或 com。 myapp.dev
.
关于android - 将 PreferenceScreen 与 applicationIdSuffix 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31114385/
我的应用程序中有一个标准的首选项页面。但是,当用户按下“管理收藏夹”时,我希望用户能够从这个首选项页面导航到另一个具有自定义布局的 PreferenceScreen。 这是我想到的自定义布局: 是否可
我正在以编程方式创建一组嵌套的 PreferenceScreen。当用户进入其中一个屏幕并点击其中的某个内容时,我想返回到之前的 PreferenceScreen(即“父级”)。 我找不到这方面的任何
我的应用以 API 28 为目标,并且至少有 API 15。作为支持库,我使用的是 AndroidX。 我有一个由 Activity 托管的偏好 fragment ,如下所示: SettingsFra
我遇到了以下(小但烦人!)问题:我有一个 PreferenceActivity,其 XML 偏好层次结构定义带有“sub PreferenceScreens”,即。 e.顶级 PreferenceSc
迁移到 AndroidX 并将目标 SDK 升级到 28 后,我的 SettingsPage 丢失了 PreferenceScreen 组件之间的分隔线,并且文本未左对齐。谁能帮忙? `
我是 Android 开发新手。我在我的 Android 应用程序中开发了一个首选项 Activity 。我想要一个 Preference 来打开一个常规的 Activity。我在我的 XML 文件中
PreferenceScreen 对我来说不够好,因为我必须向 Spinner 添加项目。这些项目需要来自数据列表。 我有一个自定义的 ArrayAdapter,它会在我单击它时返回项目的名称。它返回
我正在尝试构建一个测试,以使用 Espresso 验证我的 PreferenceScreen View 。我要单击的文本位于底部。那么如何使用 Espresso 在 PreferenceScreen
我从 the android documentation 得到以下代码 Android Studio 给我一个错误,说我在 PreferenceScreen 标签上缺少高度和
我创建了以下自定义首选项屏幕。 我想在 Button1 和 Button2 上添加监听器。我应该怎么做? 我正在使用以下代码创建上述首选项屏幕。 演示首选项: import android.app.A
我想去掉首选项 Activity 和所有子屏幕中的顶部标题栏。我现在面临的问题不是发生在果冻 bean 上,而是发生在旧版本上。如果我无法删除它,我想更改它的行为,以便子屏幕中的标题不会从列表项中转移
我有一个 xml 文件,它定义了一些偏好屏幕,如下例所示 .... 我希望能够增加首选项屏幕文本的字体大小,但是因为在首选项屏幕中没有 android:textsiz
我不知道如何在 PreferenceScreen 中实现向上按钮。向上按钮在您的应用程序图标旁边的操作栏中显示一个插入符号,允许您导航应用程序的层次结构,更多信息 here . 我有一个首选项 fra
我正在尝试创建一个 PreferenceScreen,但我希望 Activity 设计与整个项目一样。 如何创建自定义 PreferenceScreen 设计? 最佳答案 是的,这是可行的。为布局道歉
我的 PreferenceScreen 标题很长,尤其是在某些语言中。我可以为 CheckBoxPreference 或 ListPreference 设置多行标题: Android preferen
我在我的首选项屏幕上添加了一个小部件布局,显示一个箭头图标,以向用户表明在给定的 PreferenceScreen 后面还有更多首选项。 但是,我注意到当未启用 PreferenceScreen 时它
我有一个preferencescreen 页面只用于显示数据而不保存它用于设置 代码如下 现在我想知道如何
我正在运行时创建一个 PreferenceScreen。但是在尝试滚动时屏幕停电。 ListView有一个状态可以避免这种情况, android:cacheColorHint="@android:co
下面是首选项屏幕的截图: 我还包括布局和 java 代码: layout/toolbar.xml layout/activity_settings.xml xml/fragment
我找到了一种解决方法来实际启用嵌套 PreferenceScreen 上的 ActionBar 主页按钮...但是它不会在我的 PreferenceActivity 中调用 OnOptionsItem
我是一名优秀的程序员,十分优秀!