Google Play上支持的设备0

Tal*_*mar 6 android signalr google-play

我知道这里发布类似的问题.我将应用程序上传到Google Play商店,但它与所有设备不兼容.该应用实际上是一个基于SignalR的聊天应用程序.看看这个图像 在此输入图像描述

我正在附加AndroidManifest.xml文件.任何帮助将不胜感激.

<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>

<supports-screens 
      android:smallScreens="true" 
      android:normalScreens="true" 
      android:largeScreens="true"
      android:xlargeScreens="true"
      android:anyDensity="true" />
<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19" 
    android:maxSdkVersion="21" />

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission     android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

我正在使用信号器库.我正在使用这个库在android中的聊天应用程序.我首先开发了基于eclipse的项目并使用jar文件.应用程序运行正常.

但是,当我尝试将应用程序上传到Google Play时,它会向我显示一条消息,指出您的应用不支持任何设备.我甚至尝试上传没有库的应用程序,然后它上传支持超过6K的Android设备.

因为这个库是为gradle for android更新的.所以我只是将它转换为android studio的gradle项目.工作完美但仍然不支持任何设备.

这些是我在eclipse和android studio中使用的jar文件 在此输入图像描述

小智 10

上周我遇到了同样的情况.

我发现主要的问题是"signalr-client-sdk.jar"包装不正确的android.

"signalr-client-sdk.jar"里面的文件夹

signalr-client-sdk.jar
|
|-lib
|  |
|  |-getLibs.ps1
|  |-getLibs.sh
|  |-gson-2.2.2.jar
Run Code Online (Sandbox Code Playgroud)

这三个文件将被打包到apk"lib"文件夹中.当您的应用程序使用armeabi,x86,x86_64本机supprot库(*.so)时它会正常工作,但没有错误.并使谷歌开发者控制台web过滤限定符支持设备错误.

把这段代码解决问题

packagingOptions {
  exclude 'lib/getLibs.ps1'
  exclude 'lib/getLibs.sh'
  exclude 'lib/gson-2.2.2.jar'
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


EK_*_*Day 9

我通过修复冲突的jar文件解决了这个问题.我把它们发布在github上. https://github.com/eak65/FixedSignalRJar


Tal*_*mar 5

最后我解决了这个问题.这里已经发布了两个解决方案.

解决方案1:使用aar文件

步骤1

首先我将我的eclipse项目转换为Gradle.

第2步

从此链接下载最新的SignalR.生成aar文件.将这些文件添加为依赖项.

第3步

更新了我的清单文件.我错过了一些位置支持权限.现在这是新的AndroidManifest.xml

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="false"/>

<uses-feature
    android:name="android.permission.INTERNET"
    android:required="false" />
<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19"
    android:maxSdkVersion="21" />

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:resizeable="true"   />

<compatible-screens>

    <!-- small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />

    <!--Only hdpi and xhdpi for normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="ldpi" />
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />

    <!-- all large size screens -->
    <screen android:screenSize="large" android:screenDensity="ldpi" />
    <screen android:screenSize="large" android:screenDensity="mdpi" />
    <screen android:screenSize="large" android:screenDensity="hdpi" />
    <screen android:screenSize="large" android:screenDensity="xhdpi" />

    <!-- all xlarge size screens -->
    <screen android:screenSize="xlarge" android:screenDensity="ldpi" />
    <screen android:screenSize="xlarge" android:screenDensity="mdpi" />
    <screen android:screenSize="xlarge" android:screenDensity="hdpi" />
    <screen android:screenSize="xlarge" android:screenDensity="xhdpi" />

    <!-- Special case for Nexus 7 -->
    <screen android:screenSize="large" android:screenDensity="213" />

</compatible-screens>


<permission android:name="com.test.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
<uses-permission android:name="com.test.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

当然它也有应用标签和活动.

解决方案2:使用jar文件

步骤1

在主包中创建一个名为"libs"的目录并粘贴所有jar文件.您可以从此链接下载jar文件

在此输入图像描述

第2步

在主包/ app的build.gradle中添加依赖项 在此输入图像描述

第3步

现在这是我的项目的主build.gradle的样子. 在此输入图像描述

第4步

这就是我的settings.gradle的样子

在此输入图像描述

第5步

完成所有这些步骤后,您仍然会导致导入错误.这会使缓存失效并重新启动

在此输入图像描述

Google Play上的最终输出

现在它支持超过7K的设备

在此输入图像描述

干杯:)