【问题标题】:Android Build keep failing with build hint telephonyAndroid Build 通过构建提示电话不断失败
【发布时间】:2017-12-13 14:05:35
【问题描述】:

我想让该应用程序仅适用于 Android 手机而不适用于平板电脑,因此我尝试添加以下构建提示 telephony() 以使该应用程序在 xpermissions 下适用于 Android 手机: ""

我正在附加生成的 XML,其中电话提示添加了两次,一次添加了 false(默认),重复添加了 true(由我添加)。我不确定在哪里可以替换添加的默认构建提示假值。我怀疑这是导致服​​务器上构建失败的问题。

请在下面找到生成的日志:

    <receiver android:name="com.codename1.impl.android.LocalNotificationPublisher" ></receiver>
    <service android:name="com.codename1.impl.android.BackgroundFetchHandler" android:exported="false" />
    <activity android:name="com.codename1.impl.android.CodenameOneBackgroundFetchActivity" android:theme="@android:style/Theme.NoDisplay" />
    <activity android:name="com.codename1.location.CodenameOneBackgroundLocationActivity" android:theme="@android:style/Theme.NoDisplay" />
    <service android:name="com.codename1.location.BackgroundLocationHandler" android:exported="false" />
    <service android:name="com.codename1.location.GeofenceHandler" android:exported="false" />
    <service android:name="com.codename1.media.AudioService" android:exported="false" />    </application>
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
<uses-permission android:name="android.permission.INTERNET" android:required="false" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="false" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:required="false" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"  android:required="false" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"  android:required="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-feature android:name="android.hardware.telephony"/></manifest>

【问题讨论】:

  • 很难判断您是否包含了 XML 的左括号以及它是如何添加的。如果您将它直接添加到属性文件中,您可能没有正确执行此操作。请注意,构建失败日志会打印出清单的完整生成 XML,因此您可以看到我们从您那里得到了什么。我们需要完整的日志来提供帮助。
  • 谢,。我更新了生成的 XML 文件并注意到电话提示默认添加为 false,我再次添加了 true 提示。我不知道从哪里自动添加 false 导致问题。应该为 codename1.arg.android.xpermissions 添加构建提示?
  • 我已更新问题描述以更好地理解问题。如果有人遇到同样的问题,请告诉我

标签: codenameone


【解决方案1】:

您不应包含已包含的清单条目。我们总是将依赖项标记为必需false。这意味着需要权限,但如果权限被撤销,应用程序不会失败。这通常是一种很好的做法,因为 required 的 true 标志可能是一个错误,尤其是在跨平台应用程序中。

【讨论】:

  • 明白了。在这种情况下,如果我只想为手机发布应用程序而不为平板电脑发布应用程序,我该怎么办。应该使用什么样的 Android 权限,才能让 App 适用于不同屏幕尺寸的手机。
  • 我不明白这与手机尺寸有何关系?
  • Shai,我在 IOS 版本的 codenameone_settings.properties 文件中使用了以下构建提示,以使 App 仅安装在 iphone 上而不是 ipad 上。我正在使用电话构建提示作为解决方法来停止 App在像 Ipad 这样的大屏幕上下载。UIRequiredDeviceCapabilitiestelephony 同样,我正在尝试使用 用于谷歌播放,因此应用程序仅安装在 Android 手机上,不会安装在平板电脑上。但我无法将 false 覆盖为 true。我做错了吗
  • 我们目前不支持。请提交 RFE 以添加强制所需构建提示的功能,我们将尝试解决此问题。
  • 谢谢谢。会做。还有一个与此相关的注意事项,CN1 中缺少设置目标设备(Xcode 项目属性)。不确定我是否不存在类似的东西。我们有这样的选择,对于想要发布特定于某些设备的应用程序的开发人员来说,这个过程会容易得多。
猜你喜欢
  • 2011-10-06
  • 2014-10-12
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2023-03-11
  • 2020-09-06
  • 2015-07-11
  • 1970-01-01
相关资源
最近更新 更多