问题标签 [android-compatibility]

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.

0 投票
1 回答
545 浏览

java - 旧 Android 设备上 ContentValues.keySet() 中的 NoSuchMethod 错误

使用此功能时出现奇怪的错误。在新设备和模拟器上运行良好,但是在旧设备上测试应用程序时它崩溃了。关于发生了什么的任何线索?

我得到的错误是:

E/AndroidRuntime:致命异常:主java.lang.NoSuchMethodError:keySet

提前致谢!

0 投票
1 回答
2171 浏览

android - Android,不使用支持库时,DrawerLayout 的等效类是什么?

由于我的最低 SDK 版本是 14,我不想将支持库添加到我的应用程序中。DrawerLayout根据 Android 在页面上所说的,这个视图组是在支持库中定义的(android.support.v4.widget ) 中定义的。

DrawerLayout如果我不添加支持库,是否有任何等效类?谢谢。

0 投票
1 回答
332 浏览

android - 检查 SDK_INT 是否足够,或者使用较新的 android API 是否需要延迟加载?为什么?

代码如:

在 Froyo 中产生警告:

04-27 03:40:35.025: W/dalvikvm(3138): VFY: 无法解析接口方法 219: Landroid/content/SharedPreferences$Editor;.apply ()V

但我知道,在旧设备中,这将是一个 RuntimeError,它会中止应用程序(参见此处此处)。

那么这种在 API 8(Froyo)及更高版本中有条件地调用新 API(方法)的方式是否安全,或者在某些情况下仍然需要延迟加载?

Dalvik 的哪些变化使这成为可能?

有关的

0 投票
1 回答
1706 浏览

android - 在 API 10 中添加对 Fragments 的支持

我一直在构建一个直到最近才有的应用程序minSdkVersion="14",但我想改变它并为 api 10 添加兼容性。我遇到的第一个问题是样式,但我通过使用Theme.AppCompat. 现在我的代码有问题,第一个是我使用了很多片段。

我的应用程序中出现的第一个片段是:

这只是我活动中扩展的内部类DialogFragment。我如何在 API 10 上进行这项工作?如果我将其更改为android.support.v4.app.DialogFragment它似乎可以消除错误(使用 Android Studio),但这很奇怪,因为如果我在一个内部类(我有 DialogFragments)上使用它,它会消除两者的错误。这是为什么?

另外,如果我要将所有Fragment扩展类更改为android.support.v4.app.Fragment, .DialogFragment, .ListFragment……如果我在更高的 API 上运行我的应用程序,比如说 19,那会怎样?应用程序会使用兼容性库还是知道使用该 API 中的类?有区别吗?

0 投票
2 回答
1979 浏览

android - 带有 Maven 的 Eclipse 和 Android:无法使用 java.lang.ClassNotFoundException 实例化活动 ComponentInfo

我有一个关于 Eclipse 的问题。

有一个使用 Maven 配置的 android 项目。这是来自子项目的 pom.xml(所有版本控制配置已移至父 pom.xml):

还有一个mavenised compatible-v7-appcompat 项目作为库导入工作区。该项目被复制到工作区(因为其他位置的库存在问题)并导入到我的 maven 项目(属性 -> Android -> 库)。

我有一个活动。

现在,当我尝试调试应用程序时出现错误:

我尝试了其他问题的所有内容。在两个项目的构建路径中订购和导出,仍然没有(使用 Eclipse 从这里添加资源库:http: //developer.android.com/tools/support-library/setup.html

当我将其更改为

即使我在 AndroidManifest 中保留 AppCompat 样式,它也可以正常工作:

更重要的是,在设备上加载应用程序时出现错误:

即使认为这个项目在 android 属性中设置了“Is Library”复选框。

这是项目的样子: 项目

我会很感激帮助:)

0 投票
2 回答
88 浏览

android - 如何为以下android版本做兼容模式?

我正在开发一个 android 应用程序。我在我的应用程序中使用操作栏。但它在我的 Android 智能手机(2.2.3)崩溃时不起作用。给我解决方案。

0 投票
3 回答
718 浏览

android - 如何解决 sdk 17 和 18 之间列表项布局行为变化的变化?

我创建了一个简单的应用程序来说明在 SDK 17 和 SDK 18 之间包装在 RelativeLayout 中时 LinearLayout 的行为方式的变化。首先,屏幕截图:

当 targetSdkVersion 为“17”时:

在此处输入图像描述

当 targetSdkVersion 为“18”时:

在此处输入图像描述

此活动的布局是:

text_list_item.xml 是:

活动的 onCreate() 如下所示:

TestAdapter 看起来像这样:

当 target = 17 时,LinearLayout 的子视图在位于 ListView 内部和在 ListView 外部时都被正确调整为可用宽度的 50%。当 target = 18 用作列表项的布局时,它不会调整大小。在这种情况下,它的宽度保持在“0dp”并且永远不会调整大小。

理想情况下,我希望以 SDK 19 为目标。不过,为了做到这一点,我以某种方式适应这种行为变化。关于如何实现的任何想法?

顺便说一句,布局如此复杂和“怪异”是有原因的;我意识到有更直接的方法可以实现这种特殊的视觉效果。

编辑

提供更多关于我为什么使用这种病态布局的信息:它用于“仪表”。LinearLayout 中的 View 使用 ScaleAnimation 进行拉伸或收缩,使其占据总可用宽度的所需百分比。棘手的是我需要在仪表顶部覆盖文本,并且我希望仪表的高度由文本确定。

因此,外部的 RelativeLayout 应该“与其父级一样宽”,但只能“与其包含的 TextView 一样高”。该 RelativeLayout 内部的 LinearLayout 应该与其父级一样宽和高。LinearLayout 中的 View 应该和包含它的 LinearLayout 一样高,但只有一半宽。

这正是我在针对 SDK 17和/或在 SDK 18+ 中当布局不用作 ListView item 的内容时得到的行为。

编辑

发布到开发者群:

https://groups.google.com/forum/#!msg/android-developers/KuoY5Tklyms/TbNq6ndD_PwJ

0 投票
2 回答
7578 浏览

android - 以 min API 14 (ICS) 为目标时,最好使用 FragmentActivity(或 ActionBarActivity)或系统 Activity?

我正在使我的应用程序的最低 Android 版本为 4.0(ICS,API 级别 14)。

首先我猜测我可以摆脱使用FragmentActivity作为活动的基类,但似乎系统框架上没有一些支持库类FragmentStatePagerAdapter,它需要支持Fragment而不是系统Fragment

所以我想知道我是否应该让我的活动从系统继承Activity,或者继续使用FragmentActivity(或者ActionBarActivity在使用 appcompat 库时)?

0 投票
1 回答
115 浏览

android - 尽管兼容,但应用程序未在 Google Play 上显示

我的应用程序与某些设备的兼容性存在严重问题。

目前这些是我的配置和权限:

在我看来,这意味着我的应用程序与每部 Android 4.0.x 或更高版本的智能手机(不是平板电脑)兼容。那是对的吗?

因为我认识到它与我用 Genmyotion 模拟的带有 4.1.1 的三星 Galaxy S II 不兼容。我们的客户也在真实设备上描述了这种行为。有谁知道为什么会出现这个问题?

0 投票
5 回答
2026 浏览

android - 设置android操作栏的背景颜色

我正在使用兼容性库 v7。

我只是想将我的操作栏的颜色(适用于 Android 2.1 及更高版本 - 尽管我运行 Android 4.4.2)设置为纯色。

但是颜色没有变化。它保持不变。

我也尝试过用颜色创建一个实体可绘制对象,但这也没有改变。

最后,我测试了是否可以更改布局的背景,并且我可以 - 它一定是关于我没有得到的操作栏背景。

这是代码: