我目前正致力于在Titanium SDK 3.1.2上使用现代时代的旧Titanium SDK 1.x应用程序。 我设法发现自己陷入困境的一个挑战是从Google Android Maps API v1升级到v2后我一直收到此错误:
找不到Google Play服务资源。检查项目配置以确保包含资源。
我在ADK中安装了18.0.1版本工具以及所需的Google Play服务附加软件包。卸载/重新安装没有任何用处,据我所知,没有办法在Titanium中手动包含Play商店服务库。
作为参考,我按照instructions here在应用中设置了Maps API v2。以下是我的tiapp.xml文件中的内容(我替换了实际的包名称):
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>
<permission android:name="com.example.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<application>
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="###"/>
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
</application>
请注意,Google API控制台中已使用了正确的证书和正确的API。
有没有人知道为什么我可能无法在我的Titanium应用中加载Google Play服务?
提前致谢!
答案 0 :(得分:0)
地图仅适用于设备。你在模拟器中运行它吗?
我有一个额外的权限集"android.permission.ACCESS_NETWORK_STATE"
同时仔细检查以确保appId
正确并与tiapp.xml
文件中的内容相匹配
<android xmlns:android="http://schemas.android.com/apk/res/android">
<tool-api-level>14</tool-api-level>
<manifest>
<!-- uses-sdk android:minSdkVersion="11" android:targetSdkVersion="14" -->
<!-- Camera Access -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<!-- Allows the API to download data from Google Map servers -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!-- Allows the API to cache data -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Use GPS for device location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Use Wi-Fi or mobile connection for device location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<!-- Allows the API to access Google web-based services -->
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- Specify OpenGL ES 2.0 as a requirement -->
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
<!-- Replace <com.domain.appid> with your application ID -->
<uses-permission android:name="com.wiley.TIgram.permission.MAPS_RECEIVE"/>
<permission android:name="com.wiley.TIgram.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<application android:hardwareAccelerated="true" android:theme="@android:style/Theme.Holo.Light">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="XXXXXXXXXXXXXXXXXXXXXXXX"/>
<activity android:configChanges="keyboardHidden|orientation" android:name="ti.modules.titanium.media.TiCameraActivity" android:screenOrientation="landscape" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
</application>
</manifest>
</android>
答案 1 :(得分:0)
这是一个建议而不是答案,但我得到了同样的错误,它让我在错误的树上吠了很长一段时间才意识到我在代码中的其他地方出现了错误。在我的例子中,有一个视图元素具有null属性,尽管从堆栈跟踪中无法清除。您上面粘贴的Play服务错误很早就可以看到,但如果找到该服务,编译器似乎会忽略它。
:(
为了让事情更加混乱,我为iOS构建了相同的代码并且没有错误。