天道酬勤,学无止境

android-manifest

如何知道我正在为使用 ndk-build 构建哪个 API 级别?(How to know which API level I'm building for using ndk-build?)

问题 我试图更好地理解使用 ndk-build 时 api 级别的选择是如何工作的。 我知道我可以在Application.mk 中显式设置APP_PLATFORM ,否则 ndk-build 将使用android:minSdkVersion以清单中指示的 api 为目标,但是如果我的应用程序清单同时具有android:minSdkVersion和android:targetSdkVersion ,这是高于 minSdkVersion? ndk-build 会针对targetSdkVersion吗? 我该如何检查? 如果它针对更高的 api 级别,我想我将能够使用仅适用于该级别的本机 api 进行构建,但是如果我在具有较低 api 级别的设备上运行该应用程序,它应该会悲惨地失败,所以在这种情况下我应该实现某种api级别检查,对吗? 回答1 使用__ANDROID_API__中定义$NDK/platforms/android-<level>/<abi>/usr/include/android/api-level.h #if __ANDROID_API__ >= 21 // building with Android NDK Native API level 21 or higher posix_fadvise64(fd, ...); #else // building with

2021-12-08 21:31:22    分类:技术分享    android   c++   c   android-ndk   android-manifest

Android 应用程序无法连接到 Wifi,但在通过 Wifi 共享的 3G 中运行良好(Android application not connecting to Wifi ,but works fine in 3G shared through Wifi)

问题 嗨,我不明白为什么我的 android 应用程序在通过 WiFi 访问互联网时不起作用。 该应用程序在使用其自己的 3G 连接时能够工作。 它无法连接到 WIFI。 但是,如果我通过 WiFi(网络共享)共享 iPhone 中的 3g 连接,则 android 设备可以访问服务器。 我检查了各种设备中的应用程序,并将清单更改如下,仍然没有响应。 未连接的代码是登录页面。 我遵循了普通的 php 脚本,但它没有在 WiFi 中连接到该脚本, 提前致谢 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cs.nott.ac.uk.app" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /

2021-12-08 18:33:26    分类:技术分享    android   xml   wifi   android-manifest

将 Admob 代码添加到 Android 出现错误:您必须在 AndroidManifest.xml 中声明 AdActivity [重复](Adding Admob code to Android giving error: You must have AdActivity declared in AndroidManifest.xml [duplicate])

问题 这个问题在这里已经有了答案: Admob 实施错误(7 个回答) 去年关闭。 我正在尝试使用 Admob 实施我的第一个广告。 我已经阅读了其他似乎有帮助的帖子,还有这个:AdMob can't display ads because of configChanges 所以我将项目构建目标设置为 Android 4.0 (API 14)。 我还添加了这是project.properties。 # Project target. target=android-14 然后我在 AndroidManifest.xml 中包含了这些行: <activity android:name="com.google.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/> 我还添加了必需的代码以在我的活动类中显示广告。 (就像这里描述的:http://code.google.com/intl/de-DE/mobile/ads/docs/android/fundamentals.html) 问题是,当我运行此代码时,会显示广告空间,但只有以下消息: "You must have AdActivity

2021-12-08 06:47:01    分类:技术分享    android   android-manifest   admob

android 市场中显示的清单和支持的设备(Manifest and supported devices showed in android market)

问题 是否有工具可以测试我的 android manifest 以查看具有给定设置的 android 市场支持哪些设备? 我希望除了将每个测试都上传到 android 市场之外还有其他方法。 我需要找出为什么不支持某些小屏幕设备,但我还没有找到原因。 我目前支持以下屏幕,我想android:smallScreens应该让带有 Android 2.3 的三星 Galaxy Mini 安装我的应用程序,但它没有。 <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> 编辑:当前权限和功能: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

2021-12-07 19:12:28    分类:技术分享    android   android-manifest

如何在不安装 Android APK 的情况下检测其清单中是否已将可调试设置为 true 或 false?(How can I detect whether an Android APK has debuggable set to true or false in its manifest without installing it?)

问题 正如标题所说,我希望能够在计算机上找到 APK 是否将 debuggable 设置为 true 或 false,而无需在设备上安装它,运行它并查看它是否显示在 DDMS 中。 回答1 这是“一旦你知道怎么做就很容易”的事情之一 - 使用 aapt 工具检查清单。 aapt dump xmltree YourApp.apk AndroidManifest.xml | grep debuggable 该命令将为您提供 AndroidManifest.xml 文件的编译形式的转储 - 输出将类似于 A: android:debuggable(0x0101000f)=(type 0x12)0x0 (我的命令提示符的实际输出)在该示例中,0x0 表示错误。 回答2 显然aapt可以做到: aapt l -a app.apk | grep debuggable 将返回: A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff (means debuggable is true) 或者 A: android:debuggable(0x0101000f)=(type 0x12)0x0 (means debuggable is false) 回答3 对于窗口用户可以使用以下命令: aapt l -a <apk with path> |

2021-12-07 18:54:01    分类:技术分享    android   android-manifest   apk

android.permission.WRITE_SECURE_SETTINGS 错误(android.permission.WRITE_SECURE_SETTINGS error)

问题 您好,我的问题是,当我尝试更改天气或未启用 GPS 设置时,出现以下错误10-20 05:44:31.890: E/AndroidRuntime(889): java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS而在我的清单文件中,我确实拥有清单文件中错误中列出的权限。 显现: <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/> 任何帮助,将不胜感激 回答1 WRITE_SECURE_SETTINGS是一个signatureOrSystem权限,意味着普通的 SDK 应用无法持有它。 只有与固件相关的应用程序才能拥有此权限。 回答2 阅读有关此特定问题的所有答案,解决此问题的一种方法是使用此代码启用 gps,但它不起作用,正如 CommonsWare 指出的那样,该应用程序必须是系统应用程序才能使此代码正常工作......所以可以转换使用 TitaniumBackup 将应用程序导入系统应用程序。 这现在对我来说非常好。 *索尼用户将看到另一条消息“将在使用 gps 时收集匿名数据” -

2021-12-07 17:08:42    分类:技术分享    java   android   xml   android-manifest

仅适用于平板电脑(Application Only for Tablets)

问题 我只为平板电脑创建应用程序。 现在我将该应用程序上传到市场上。 我的应用程序支持 Android 2.2 Galaxy Tab 7 和所有 android 3.0 版本的平板电脑。 问题是应用程序无法安装在手机上。 当我使用 Android 2.2 版设备并搜索我的应用程序时,它会在我的设备中找到并安装。 为了避免我在清单文件中添加此代码:- <supports-screens android:smallScreens="false" android:normalScreens="false" android:largeScreens="true" android:xlargeScreens="true" /> 但直到在移动我的应用程序显示。 我发现了一些其他代码,但这没有显示在我的清单文件中 android:requiresSmallestWidthDp="600" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer" 提前致谢 回答1 正如我刚刚在这里回答的那样:https://stackoverflow.com/a/10540882/413127 这是可能的 您需要将以上清单中概述的内容结合起来: <supports-screens android

2021-12-07 16:57:51    分类:技术分享    android-manifest   android

在 onCreate 方法中获取活动信息元数据(get activityInfo metaData in onCreate method)

问题 我需要从AndroidManifest.xml文件中检索一个值,存储为元数据: <meta-data android:value="3" android:name="myInterestingValue" /> 在onCreate方法中,我调用了以下方法: private Object getMetaData(String name) { try { ActivityInfo ai = getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA); Bundle metaData = ai.metaData; if(metaData == null) { debug("metaData is null. Unable to get meta data for " + name); } else { Object value = (Object)metaData.get(name); return value; } } catch (NameNotFoundException e) { e.printStackTrace(); } return null; } 但是, metaData总是空。 在onCreate方法中访问metaData是不可能的吗?

2021-12-07 15:24:42    分类:技术分享    android   metadata   android-manifest   oncreate

尝试上传到 Android Market 时出现“错误获取 'android:icon' 属性:属性不是字符串值”("ERROR getting 'android:icon' attribute: attribute is not a string value" when trying to upload to the Android Market)

问题 这里没有类似的问题,但谷歌搜索其他人也有同样的问题。 所有推荐的修复都不起作用。 完整的错误是: 文件无效:W/ResourceType(32055):获取包 0 中 0x7f050001 (t=4 e=1) 的条目失败(错误 -75)获取“android:icon”属性的错误不是字符串值 这是我的清单: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dominoes" android:versionCode="10" android:versionName="2.00"> <application android:icon="@drawable/myicon" android:label="@string/app_name"> <activity android:name=".Dominoes" android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name"> <intent-filter>

2021-12-07 15:14:11    分类:技术分享    android   icons   android-manifest   google-play

ACTION_SCREEN_ON 和 ACTION_SCREEN_OFF 不起作用?(ACTION_SCREEN_ON and ACTION_SCREEN_OFF not working?)

问题 我试图在屏幕关闭(锁定)时关闭 WiFi,并在屏幕打开(解锁)时再次打开它。 我做了一个BroadcastReceiver ; 把这段代码放在清单中: <receiver android:name="MyIntentReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.SCREEN_OFF" /> <action android:name="android.intent.action.SCREEN_ON" /> <action android:name="android.intent.action.USER_PRESENT" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver> 这是类MyIntentReceiver : package org.androidpeople.boot; import android

2021-12-07 12:03:44    分类:技术分享    android   android-emulator   android-manifest