问题标签 [android-9.0-pie]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - java.lang.NoClassDefFoundError:解析失败:Lorg/apache/http/ProtocolVersion
当我使用 Android Studio 构建我的应用程序时,我遇到了这个错误。APK 已编译,但当我尝试在 Android P 模拟器上运行该应用程序时,它会崩溃并抛出以下错误。请在附件中查看更多详细信息:
这是我的 build.grade 文件。如果有人对可能出现的问题提出建议,我将不胜感激。非常感谢。
android - Android P - 从资产复制数据库后出现“SQLite:没有这样的表错误”
我在我的应用程序资产文件夹中保存了一个数据库,并在应用程序首次打开时使用以下代码复制数据库。
上面的代码运行没有问题,但是当您尝试查询数据库时,您会得到一个 SQLite: No such table 异常。
此问题仅在 Android P 中出现,所有早期版本的 Android 都可以正常工作。
这是 Android P 的一个已知问题还是发生了一些变化?
android - 我们如何获得顶部有刘海的屏幕尺寸
有一些设备,例如华为p20(运行android 8,8.1),它内置notch
在顶部。当前获取屏幕大小的方法是
它正在将游戏带出屏幕。那么,有什么办法可以解决 android P 和 Pre-p 设备的缺口问题。
android - 使用 root 安装 APK,处理“/data/local/tmp/”文件夹的新限制
背景
到目前为止,我可以通过以下代码使用 root(在应用程序内)安装 APK 文件:
如果我想(尝试)安装到 sd-card :
问题
最近,不确定来自哪个 Android 版本(至少在 Android P beta 上存在问题),上述方法失败,向我显示此消息:
这似乎也影响了流行的应用程序,例如无法恢复应用程序的“钛备份(专业版)”。
我试过的
查看所写的内容,它似乎没有安装 APK 文件的权限,而/data/local/tmp/
.
所以我尝试了接下来的事情,看看我是否能克服它:
- 设置对文件的访问权限 (
chmod 777
) - 没有帮助。 - 授予我的应用程序存储和REQUEST_INSTALL_PACKAGES的权限(使用ACTION_MANAGE_UNKNOWN_APP_SOURCES Intent) - 没有帮助。
/data/local/tmp/
使用官方 API创建文件的符号链接,使其位于.这没有做任何事情。
使用此创建符号链接:
这部分奏效了。该文件在那里,我可以在 Total Commander 应用程序中看到它,但是当我尝试检查它是否存在时,并且当我尝试从那里安装 APK 时,它失败了。
将文件复制/移动(使用
cp
或mv
)到/data/local/tmp/
路径,然后从那里安装。这行得通,但它有缺点:移动是有风险的,因为它会暂时隐藏原始文件,并且会更改原始文件的时间戳。复制是不好的,因为它使用额外的空间来安装(即使是临时的),而且这样做会浪费时间。使用以下命令(取自此处)复制 APK 文件,告诉它避免实际复制(意味着硬链接):
这没有用。它给了我这个错误:
/li>检查在安装应用程序的其他情况下会发生什么。当您通过 IDE 安装时,它实际上会在此特殊路径中创建 APK 文件,但如果您通过 Play Store、简单 APK 安装(通过 Intent)或 adb(通过 PC)安装,则不会。
问题
有没有办法克服在这个特殊路径上使用 root 安装 APK 的缺点?甚至可能完全避免处理这条路径?
为什么操作系统突然需要使用此路径?为什么不使用原始路径,就像安装应用程序的其他方法一样?安装应用程序的其他方法有什么作用,以某种方式避免使用空间路径?
android - Android compileTarget P appcompat 库
https://i.imgur.com/gvEwBkL.png
Android Studio 告诉我使用更新版本的 appcompat。Android P 已经有一款了吗?由于 AndroidX,我必须以 P 为目标。
android - 尝试在空对象引用上调用虚拟方法“java.lang.String com.android.server.fingerprint.ClientMonitor.getOwnerString()”
过去几周在 Crashlytics 报告中出现此异常。仅限安卓 P。
有什么想法/解决方法吗?
android - 无法访问 android P 中预先存在的数据库
我在我的应用程序中使用了预先存在的数据库,该数据库放置在资产文件夹中,并且我正在使用预先存在的结构来存储数据。这在所有 Android 设备上都运行良好。
但不知何故,它不适用于 Android P 测试版。当我解压缩数据库并将其存储到内部存储器中并关闭该数据库对象时,数据库文件已损坏,因此,关闭数据库后,该数据库文件中只剩下“android-metadata”表,其他表已被自动删除。
请指教。!!会是什么原因。这是我的代码
android - Android P 中的 MatrixCursor 实现是否发生了变化?
最近,我观察到在使用 Android P 开发者预览版时,我维护的一个应用程序出现了大量崩溃。
潜入(深入)项目代码,我发现问题方法如下:
据我了解,此代码用于直接从 MatrixCursor 中检索自定义对象,而不是原始类型、字节数组或字符串。以前有一个私有方法在MatrixCursor
内部执行此操作,我们通过反射访问此方法。
不用说,这种方法存在许多问题。据我所知,访问私有 API 的反射是 Android强烈反对的一项功能。尽管如此,在 Android P 预览版之前,这似乎一直在按预期工作。
这导致我提出以下问题:
的实现是否已MatrixCursor
更改或从 Android P 开始完全弃用反射?
可悲的是,我不是 100% 知道我必须使用哪些替代方法来避免这个问题。非常感谢任何建议,是否有可用于存储自定义对象的光标?
android - android P中的sqlite数据库错误“没有这样的表”
我使用 SQLiteOpenHelper 从 assets 中读取数据库。它适用于除 android p 之外的所有 android 版本。
这是我的 copyDataBase 函数:
我在这个函数中输入了一个日志,它确实通过了它。但我收到此错误:
这就是我获取数据的方式:
并且错误在线:“c.moveToFirst();”
android - Android P 对非 SDK 接口的限制 - 暗灰名单与黑名单
Developer Preview 3 今天发布了,我注意到一些与非 SDK 接口相关的变化:
访问以下 API 会在 DP2 和 DP3 上产生不同的日志
DP2:
Accessing hidden field Lcom/android/internal/R$id;->search_close_btn:I (blacklist, reflection)
结果:NoSuchFieldException,无法访问该字段
DP3:Accessing hidden field Lcom/android/internal/R$id;->search_close_btn:I (dark greylist, reflection)
结果:该字段可访问
有人可以解释为什么这个字段在 DP3 中可用,深灰名单和黑名单有什么区别?