2017-02-15 50 views
1

我的Google Play應用程序對於某些設備而言無論其Android版本是否可見。有什麼方法可以瞭解爲什麼我的應用程序通過Android Studio或Google Android開發者控制檯與我們的品牌X設備不兼容?如何理解爲什麼「Android應用程序與某些特定設備不兼容」

E.g;

  • 華爲P9在Android 6.0 OK

  • 華爲P9精簡版的Android 6.0 失敗

  • LG G5 - 安卓7.0 OK
  • 的Android One - 安卓7.1。 1 FAILS

我檢查了以前輸入的問題/答案,並理解可能是以下原因之一;

  1. 機器人:需要= 「假」should be used for several uses-features
  2. Could be related to application size.

什麼我真的出來後是要了解爲什麼它是不與特定設備不兼容的原因。不過,我會嘗試這些建議並分享結果。

我的清單文件如下;

<?xml version='1.0' encoding='utf-8'?> 
<manifest android:hardwareAccelerated="true" android:versionCode="10000" android:versionName="1.0.2" package="com.apps.appname" xmlns:android="http://schemas.android.com/apk/res/android"> 
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> 
    <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> 
     <intent-filter android:label="@string/launcher_name"> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
**<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />** 
<uses-feature android:name="android.hardware.usb.host" /> 
<uses-permission android:name="android.permission.BLUETOOTH" /> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.RECORD_VIDEO" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
</manifest> 
+2

我覺得''是個問題。並非所有設備都支持USB主機。該設備可能不支持app –

+0

@VladMatvienko;所以你認爲使用「android:required =」false「」這個特性是一個很好的嘗試? – shamaleyte

+0

@VladMatvienko已經爲您解答問題,您可以通過Google Play [鏈接](https://play.google.com/store/apps/details?id=eu)查看設備(如果有的話)。 chainfire.usbhostdiagnostics) –

回答

2

有什麼方法可以理解我的應用程序爲什麼通過Android Studio或Google Android Developer Console與品牌X設備不兼容?

是,雲測試實驗室,是你可以測試你的應用程序兼容性的方式。

讓您的應用在覆蓋 幾乎所有的品牌,型號和版本的用戶可能 有設備的物理設備的可用自動化測試。該實驗室可幫助您快速發現僅使用可用測試設備時可能會遺漏的兼容性問題。

使用雲測試實驗室從Android的工作室:

添加以下到studio.vmoptions文件:

-Denable.google.cloud.testing.plugin =真

現在,您應該能夠在Android Studio的運行/調試配置對話框中看到Cloud Test Lab的附加選項。和創建不同的配置:

Cloud Test Lab in Android Studio's Run/Debug configurations dialog

「雲設備矩陣」,可以通過點擊以下圖標提供不同「矩陣配置」

單擊「應用」並關閉窗口。

現在,您可以通過單擊Android Studio中的運行配置圖標來運行測試。

使用雲測試通過命令行實驗室

首先,安裝gCloud SDk 添加alpha分量,以便從阿爾法庫

$ gcloud組件更新訪問雲測試實驗室alpha

現在爲codelab配置項目。如果您使用自己的項目,替代用正確的項目編號:

$ gcloud配置項目集雲的測試實驗室babbq 2015

確保您的身份驗證憑據是當前

$ gcloud身份驗證登錄

要運行在不同設備上的測試,讓我們先來看看availabl列表

$ gcloud阿爾法測試機器人設備列表

對於實施例:通過運行此命令E器件

上Nexus6和Nexus7虛擬設備的測試,在英語中運行的API 19和21和在縱向和橫向方向上的法語區域。 GCloud將URL提供給測試結果頁面,結果顯示爲每個測試完成。

$ gcloud阿爾法測試機器人運行\
--type儀表\
--app應用程序/生成/輸出/ APK/APP-調試unaligned.apk \

--test應用程序/建立/輸出/ APK/APP-調試androidTest-unaligned.apk \

--device-IDS Nexus6,Nexus7 \
--oS版本的IDS 19,21 \ --locales EN,FR \
- 定位肖像,風景

Guide For Using Google Cloud Test Lab

Google Play Developer Console with cloud Test Lab Feature

檢查下面的鏈接瞭解詳情 https://firebase.google.com/docs/test-lab/

希望這有助於!快樂編碼!

編輯: 要查看所有測試矩陣在你的火力地堡項目給定的應用程序集合的測試結果中,單擊應用程序的名稱,如在下面的例子中測試矩陣結果頁面。

實施例的測試執行結果頁面

[5

實施例測試矩陣列表頁面

只有四個測試執行

[7

測試矩陣結果頁面的

[6

實施例

注: 詳細的測試結果可在90天內在運行測試後,並存儲在谷歌的雲存儲(GCS)分區(但也可見於火力地堡控制檯)。當您在測試執行結果頁面上單擊查看源文件時,您可以在GCS桶中查看詳細的測試結果。當詳細的測試結果不再可用時,您仍然可以看到哪些測試通過和失敗。

注: 圖片來源從官方資料爲準。

+0

感謝您的詳細信息。但有一個問題;它是否會給出反饋來解釋發生了什麼問題,比如「該應用與華爲P9 Lite不兼容,原因如下......」還是隻是說「不兼容」? – shamaleyte

+0

@shamaleyte測井結果是爲評論而生成的,但結果的格式可能有不同的格式。你必須通過測試日誌,截圖和視頻來解釋結果。對於Robo測試,詳細的測試結果還包括一個活動地圖,它以圖形方式顯示Robo測試訪問的UI路徑...查看我的已更新答案以瞭解您的理解我已添加圖像..希望這可以清除您的疑問.... – PN10

1

使用在清單<uses-feature android:name="android.hardware.usb.host" />將導致谷歌播放不允許將無USB主機功能的設備上安裝應用程序。
如果您仍希望應用程序可用於此類設備,則應該爲此功能添加"android:required="false"
請注意,您仍然無法在不具備此功能的設備上使用USB主機功能。嘗試使用它們將導致異常。在使用之前,您應該檢查功能是否可用。

+0

,感謝您的建議,這是它與我的少數設備不兼容的主要原因。我會將PN10的答案標記爲已接受,即使您的建議是我的問題的解決方案,因爲問題是要了解我們如何找出主要原因是否與特定設備不兼容。感謝您的解釋,儘管 – shamaleyte

相關問題