支持的Android设备0设备(不支持必需的功能<uses-feature>-android.hardware.camera2)

时间:2018-11-14 09:43:01

标签: android android-studio react-native android-manifest react-native-android

我正在尝试在Google Play商店上发布我的react-native应用程序,它显示支持0设备。

我设法找到错误“不支持必需的功能 -设备目录中的android.hardware.camera2”,并遵循了Android app is supported by 0 devices和其他许多解决方案。

Google支持小组建议我无法解决我的AndroidManifest.xml问题。

这是我的AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.myApp"
              android:versionCode="16"
              android:versionName="1.0.16">

        <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
        <supports-screens android:largeScreens="true"
                          android:normalScreens="true"
                          android:smallScreens="true"
                          android:resizeable="true"
                          android:anyDensity="true" />

        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
        <uses-permission android:name="android.permission.CAMERA"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.RECORD_AUDIO"/>
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
        <uses-permission android:name="android.permission.VIBRATE"/>

        <uses-feature android:name="android.hardware.microphone" android:required="false"/>
        <uses-feature android:name='android.hardware.wifi' android:required="false"/>
        <uses-feature android:name='android.hardware.screen.portrait' android:required="false"/>
        <uses-feature android:name="android.hardware.camera" android:required="false"/>
        <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
        <uses-feature android:name="android.hardware.faketouch" android:required="false" />
        <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>



        <application
                android:name=".MainApplication"
                android:label="@string/app_name"
                android:icon="@mipmap/ic_launcher"
                android:theme="@style/AppTheme">
            <activity
                    android:name=".MainActivity"
                    android:label="@string/app_name"
                    android:launchMode="singleTask"
                    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
                    android:screenOrientation="portrait"
                    android:windowSoftInputMode="adjustResize">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.VIEW"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                    <category android:name="android.intent.category.BROWSABLE"/>
                    <data
                            android:host="myApp.auth0.com"
                            android:pathPrefix="/android/com.myApp/callback"
                            android:scheme="com.myApp"/>
                </intent-filter>
            </activity>
            <activity android:name="

com.facebook.react.devsupport.DevSettingsActivity"/>
        <service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>
        <service android:name="io.invertase.firebase.messaging.RNFirebaseInstanceIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>
        <service android:name="io.invertase.firebase.messaging.RNFirebaseBackgroundMessagingService"/>
    </application>
</manifest>

这是我的Build.gradle必填信息

android {

    compileSdkVersion 27
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "xyz"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 16
        versionName "1.0.16"
        vectorDrawables.useSupportLibrary = true
        // ndk {
        //     abiFilters "armeabi-v7a", "x86"
        // }
        multiDexEnabled true
    }

3 个答案:

答案 0 :(得分:0)

首先,如果您只是将所有内容都设置为true,则不应包含支持屏幕元素。不会成为问题的原因,但这是一个错误。

但是看着您的应用程序(我为Google Play工作),您似乎已经用问题中的答案自己解决了问题。

答案 1 :(得分:0)

如果有人遇到这个问题 在camera和camera2功能标签中添加required=false

答案 2 :(得分:0)

检查所有标签是否具有有效值。例如,如果您拼错了相机,或者创建了一个没有有效名称的标签,您将获得 0 台设备支持。

https://developer.android.com/guide/topics/manifest/uses-feature-element#features-reference