我正在尝试使用expo build:android -t apk
构建我的react native应用。它产生功能性的apk;但是,apk需要一些默认权限,尽管我删除了它们。它还会忽略应用程序图标。我在app.json和Manifest中都设置了它。
我有种感觉,我在expo build:android -t apk
命令之前缺少某些内容。我不使用react-native run-android
的原因是,它生成了一个损坏的APK,可以在手机上安装但无法运行。
请在下面找到我的清单和app.json。
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hergun1isfikri"
xmlns:tools="http://schemas.android.com/tools"
>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->
<uses-permission tools:node="remove" android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission tools:node="remove" android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission tools:node="remove" android:name="android.permission.READ_PHONE_STATE" />
<uses-permission tools:node="remove" android:name="android.permission.USE_FINGERPRINT" />
<uses-permission tools:node="remove" android:name="android.permission.VIBRATE" />
<uses-permission tools:node="remove" android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission tools:node="remove" android:name="android.vending.CHECK_LICENSE" />
<!-- These require runtime permissions on M -->
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission tools:node="remove" android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission tools:node="remove" android:name="android.permission.CAMERA" />
<uses-permission tools:node="remove" android:name="android.permission.READ_CONTACTS" />
<uses-permission tools:node="remove" android:name="android.permission.READ_CALENDAR" />
<uses-permission tools:node="remove" android:name="android.permission.WRITE_CALENDAR" />
<uses-permission tools:node="remove" android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission tools:node="remove" android:name="android.permission.RECORD_AUDIO" />
<uses-permission tools:node="remove" android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission tools:node="remove" android:name="android.permission.WRITE_SETTINGS" />
<!-- END OPTIONAL PERMISSIONS -->
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
app.json:
{
"name": "myapp",
"displayName": "myapp",
"icon": "./assets/ic_launcher.png",
"expo": {
"name": "myapp",
"slug": "myapp",
"privacy": "unlisted",
"sdkVersion": "36.0.0",
"version": "3.0.0",
"entryPoint": "node_modules/expo/AppEntry.js",
"orientation": "portrait",
"platforms": [
"android"
],
"android": {
"package": "com.myapp.myapp",
"versionCode": 3,
"config": {
"googleMobileAdsAppId": "xxx"
}
}
}
}
答案 0 :(得分:0)
Expo应该忽略所有本机文件和文件夹。您需要进行的所有更改都可以通过app.json
文件进行。这是世博会的重点之一。此外,它还为您提供了在构建过程中构建应用程序所需的所有键和权限的选项