gpt4 book ai didi

Android 版本依赖编译

转载 作者:行者123 更新时间:2023-11-30 02:36:14 25 4
gpt4 key购买 nike

Android 有条件编译吗?我正在尝试使用 android.webkit.WebView.onPause(),同时还支持 Android API 8。

我尝试了 Fiddler 和 Andrey Voitenkov 在 Conditional compiling in Android? 上建议的解决方案:

public void pause()
{
int version = android.os.Build.VERSION.SDK_INT;
if(version >= 11)
{
webViewOnPause(_webView);
}
super.onPause();
}

@TargetApi(11)
void webViewOnPause(final android.webkit.WebView webview)
{
new Runnable() {
public void run() {
new PauseStuffAvailableOnHC(webview);
}
}.run();
}

class PauseStuffAvailableOnHC
{
@TargetApi(11)
public PauseStuffAvailableOnHC(android.webkit.WebView webview)
{
webview.onPause();
}
}

...但我仍然无法编译/运行该应用程序:

“未为 WebView 类型定义方法 onPause()”

“您的项目包含错误,请在运行您的应用程序之前修复它们。”

我做错了什么,还是根本不可能这样做?

最佳答案

您的代码看起来不错,它会在使用仅从该版本开始可用的功能之前检查最低 SDK 版本。因此,如果您在版本低于 API 11 的 Android 设备上运行您的应用程序,则不会执行该代码。但如果它在具有 API 11 或更高版本的 Android 设备上运行,它将被执行。

因此这意味着,您的应用至少应针对 API 11 进行编译,因为它包含 API 11 中引入的一项功能。根据运行它的版本,该功能将被启用或不启用。

为此,请调整您的 AndroidManifest.xml :

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" />

这将针对 API 11 构建您的 Android 应用,但仍允许它在运行 API 8 或更高版本的 Android 设备上使用。

关于Android 版本依赖编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com