0

Мое приложение строит и устанавливает в эмуляторе Android, но ошибки во время установки/запуска на моем Sammy S5. Ошибка, похоже, связана с ключом API карт google, который находится в моем tiapp.xml. Раздел в вопросе:Исключения для Android требуют отсутствия ключа API в установке устройства, но работает на эмуляторе #appcelerator

<android xmlns:android="http://schemas.android.com/apk/res/android">  
     <manifest> 
      <uses-sdk android:targetSdkVersion="23"/> 
      <!-- Allows the API to download data from Google Map servers --> 
      <uses-permission android:name="android.permission.INTERNET"/> 
      <!-- Allows the API to cache data --> 
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
      <!-- Use GPS for device 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"/> 
      <uses-permission android:name="com.appcelerator.sample.mapping.permission.MAPS_RECEIVE"/> 
      <permission android:name="com.appcelerator.sample.mapping.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
      <application> 
       <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyBNHcyplkOpzO_...remainder redacted"/> 
       </application> 
       <application android:theme="@style/Theme.AppCompat.Light"/> 
     </manifest> 
    </android> 

Как вы можете видеть, ключ API является ясным и очевидным и работает в эмуляторе, но упаковано и подписан APK устанавливает и пламя с ошибками «Ti Application» и «Androd Runtime "в моей консоли Appcelerator

[ERROR] : TiApplication: (main) [1193,2581] Sending event: exception on thread: main msg:java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml; Titanium 5.1.2,2015/12/16 19:00,ca822b2 
[ERROR] : TiApplication: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml 

ответ

1

Похоже, на вашем устройстве/цели требуется новое ключевое имя. Попробуйте изменить свой ключ от com.google.android.maps.v2.API_KEY до com.google.android.geo.v2.API_KEY. Google изменил ключ с maps на geo для поддержки нескольких API.

docs От:

Для обратной совместимости API также поддерживает имя com.google.android.maps.v2.API_KEY. Это устаревшее имя позволяет аутентифицировать только API Android Maps v2. Приложение может указывать только одно из имен метаданных ключевых ключей API. Если оба они указаны, API генерирует исключение.

+0

hmmm. Я бы подумал, что документы appcelerator будут обновлены, но даже с вашими предложениями в консоли appcelerator была отправлена ​​одна и та же ошибка. После этого приложение устанавливает сбой при запуске с той же ошибкой, жалуясь на ключ API. Я пробовал ... geo.API_KEY как предлагаемую вами страницу google, и я также попробовал ... geo.v2.API_KEY, как вы и предполагали. Нет разницы. – petguy

0

ли ошибка выглядит следующим образом

[ERROR] : TiApplication: (main) [735,735] Sending event: exception on thread: main msg:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gsl.TracKm/org.appcelerator.titanium.TiActivity}: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml; Titanium 5.1.1,2015/11/24 11:07,e46100b 
[ERROR] : TiApplication: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gsl.TracKm/org.appcelerator.titanium.TiActivity}: java.lang.RuntimeException: API key not found. Check that <meta-data android:name="com.google.android.geo.API_KEY" android:value="your API key"/> is in the <application> element of AndroidManifest.xml 

Если это так, попробуйте сохранить один тег приложения в Android Manafest в ti.app XML-файл. Нравится

<application android:theme="@style/Theme.AppCompat.Light"> 
      <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyBNHcyplkOpzO_...remainder redacted"/> 
</application> 

Это работает на устройстве. Я тестирую с сохранением одного тега приложения, и исключение прошло.

+0

Я пробовал, как вы предлагали, но без какой-либо разницы. Я также пробовал варианты вашего предложения с дельтами на основе изменений, предложенных tzmartins выше, без каких-либо улучшений. – petguy

+0

Вы установили точный ключ API из проекта google в android: name = "com.google.android.maps.v2.API_KEY" android: value = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX / –