2016-11-12 6 views
0

Я закончил свое приложение и отлично провел его на эмуляторе (Nexus 6 API 22). Но когда я пытаюсь запустить его на реальном устройстве, у меня есть проблемы, в первом устройстве (с версией 5) Я попытался сбой при запуске операции, которая реализует карты Google. Сначала я пытаюсь решить его, установив его ключом к папке выпуска, а также отладкой, но сбой в работе. Я думал о некоторых разрешениях или зависимостях, но я уверен, что все правильно.У меня возникли проблемы с реальными устройствами

Мой build.gradle файл

apply plugin: 'com.android.application' 

android { 

compileSdkVersion 25 
buildToolsVersion "24.0.2" 


defaultConfig { 
    applicationId "jocadoci.soloordena" 
    minSdkVersion 19 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 

} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 

    } 
} 

dexOptions { 
    javaMaxHeapSize "4g" 
} 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:25.0.0' 
    compile 'com.android.volley:volley:1.0.0' 
    compile 'com.google.android.gms:play-services:9.8.0' 
    compile 'com.google.android.gms:play-services-maps:9.8.0' 
    compile 'com.android.support:design:25.0.0' 
    compile 'com.paypal.sdk:paypal-android-sdk:2.14.2' 
    compile 'com.android.support:multidex:1.0.1' 

} 

И AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="jocadoci.soloordena"> 

<uses-permission 
    android:name="jocadoci.soloordena.android.permission.ACCESS_FINE_LOCATION" 
    android:maxSdkVersion="25" /> 
<uses-permission 
    android:name="android.permission.ACCESS_NETWORK_STATE" 
    android:maxSdkVersion="25" /> 
<uses-permission 
    android:name="android.permission.ACCESS_FINE_LOCATION" 
    android:maxSdkVersion="25" /> 
<uses-permission 
    android:name="android.permission.ACCESS_COARSE_LOCATION" 
    android:maxSdkVersion="25" /> 
<uses-permission 
    android:name="android.permission.INTERNET" 
    android:maxSdkVersion="25" /> 
<uses-permission android:name="mypackage.android.permission.MAPS_RECEIVE" 
    android:maxSdkVersion="25" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/soloorndenalogo" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" 
    android:name="android.support.multidex.MultiDexApplication"> 


    <activity android:name=".LoginActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".RegisterActivity" /> 
    <activity android:name=".MapsItaly"/> 
    <activity android:name=".ListViewCheckboxesActivity"/> 

    <meta-data 
     android:name="com.google.android.geo.API_KEY" 
     android:value="@string/google_maps_key" /> 

    <meta-data 
     android:name="com.google.android.gms.version" 
     android:value="@integer/google_play_services_version" /> 

    <activity 
     android:name=".DrawerActivity" 
     android:label="@string/title_activity_drawer" 
     android:theme="@style/AppTheme.NoActionBar"> 
    </activity> 

</application> 

Тогда я пробую на другом устройстве (это один был с версией 4.2 .2), в этом устройстве просто нет ant, чтобы начать, разбился, когда вы попытались открыть его. Я попытался изменить версию на моем compileSDKVersion между 24 и 25, но посмотрите, что это не проблема. В этот момент я не знаю, что еще делать, я думал, что это связано с тем, что мое приложение использует сервис google, должно быть опубликовано уже в google play, я сделал это, но также не работал. Буду признателен всем, кто мог бы мне помочь. Спасибо заранее.

PS: Если кто-то хочет попробовать приложение в уже в магазине, но выглядит, что только доступен в Мексике, но если кто-то хочет попробовать, я мог бы отправить мое приложение-release.apk

ОБНОВЛЕНИЕ

Прежде всего спасибо всем вам за то, что вы дали время ответить. Я ценю.

Благодаря ответу @Windsor возникло сомнение в том, что вы используете тот же ключ API для файла отладки и выпуска. Глядя на мой ключ sha-1 и на веб-сайт разработки Google, я понимаю, что действительно могу использовать один и тот же ключ API для обоих файлов (отладка и выпуск), но думаю, что с сгенерированным подписанным ключом, который я создаю, строю свой apk, я мог бы используйте sha-1, чтобы добавить еще одно ограничение на мой ключ API и использовать его в app-release.apk. Успешное приложение работает правильно на реальном устройстве (версия 5), но, к сожалению, оно остановлено на других устройствах версии.

+0

Когда приложение терпит крах, вы получите журнал ошибок, как правило, с трассировкой стека и сообщение с описанием проблемы. Никто не сможет вам помочь, если вы не опубликуете его. Вы даже можете помочь себе, читая его. –

+0

Просто скажите, что мое приложение остановилось. –

ответ

0

привет, вы можете проверить местоположение Разрешение для уровня API 23?

+0

Что значит? –

+0

Проверить разрешение для API-уровня 23 –

+0

https://developer.android.com/training/permissions/requesting.html –

0

Создать подписанный apk.

Убедитесь, что у вас есть ключ освобождения sha1 в службах Google API. Работает ли отладка на реальных устройствах?

Не могу сказать вам, не видя основной деятельности.

Если вы не используете ключ api, вы просто не получите карту. Если он работает с несколькими версиями Android в эмуляторе, то это api key. Отладочные ключи не работают в финальной копии, необходимой для создания apk с ключом освобождения !!!

Может быть, вы хотите получить услуги определения местоположения.

Я строю для самого низкого теста целевой версии, а затем добавляю совместимость для более новой версии, что мне нравится.

+2

Если у вас нет ответа, не давайте его. –

+0

Вы говорите, что мне нужен еще один ключ api, а не тот, который я использовал раньше? –

Смежные вопросы