android – react-native编译的apk不会在设备上运行

使用react-native教程进行操作(react-native 0.30):
我创建的应用程序无法在 Android设备上安装这里是步骤:

> react-native init demo
> cd android
> gradlew assembleRelease
>将unsigned apk复制到移动设备(htc m8 mini 2)

并得到结果:未安装应用程序演示

基于这个类似的问题apk didn’t run on mobile android react native
Unsigned apk不会安装在手机上.

但是为什么我能够运行Ionic 2制作的非侵权应用程序?

有什么问题?

解决方法

在Ionic 2中你运行一个调试apk,它不可能运行一个未签名的apk.

你可以做的反应是签署你的apk并运行.

一个设置可能有点复杂,但在完成设置后很容易在需要时生成签名的apk.

您可以按照以下说明签署您的apk:

生成签名密钥

您可以使用keytool生成私有签名密钥.

$keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

此命令会提示您输入密钥库和密钥的密码,并提供密钥的“可分辨名称”字段.然后,它将密钥库生成为名为my-release-key.keystore的文件.

密钥库包含一个密钥,有效期为10000天.别名是您稍后在签署应用时使用的名称,因此请记住注意别名.

注意:请记住将密钥库文件保密,并且永远不要将其提交给版本控制.

设置gradle变量

>将my-release-key.keystore文件放在android / app下
项目文件夹中的目录.
>编辑文件〜/ .gradle / gradle.properties并添加以下内容
(用正确的密钥库密码,别名和密钥替换*****
密码),

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore

MYAPP_RELEASE_KEY_ALIAS=my-key-alias

MYAPP_RELEASE_STORE_PASSWORD=*****

MYAPP_RELEASE_KEY_PASSWORD=*****

这些将成为全局gradle变量,我们稍后可以在gradle配置中使用它来签署我们的应用程序.

Note about saving the keystore: Once you publish the app on the Play
Store,you will need to republish your app under a different package
name (losing all downloads and ratings) if you want to change the
signing key at any point. So backup your keystore and don’t forget the
passwords. Note about security: If you are not keen on storing your
passwords in plaintext and you are running OSX,you can also store
your credentials in the Keychain Access app. Then you can skip the two
last rows in ~/.gradle/gradle.properties.

将签名配置添加到应用程序的gradle配置中
编辑项目文件夹中的文件android / app / build.gradle并添加签名配置,

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

生成发布APK

只需在终端中运行以下命令:

$cd android && ./gradlew assembleRelease

Gradle的assembleRelease会将运行您的应用程序所需的所有JavaScript捆绑到APK中.如果您需要更改捆绑JavaScript包和/或可绘制资源的方式(例如,如果您更改了文件/文件名称或项目的一般结构),请查看android / app / build.gradle以查看如何更新它以反映这些变化.

生成的APK可以在android / app / build / outputs / apk / app-release.apk下找到,并准备好分发.

测试应用的发布版本

在将发布版本上载到Play商店之前,请确保彻底测试.使用以下方法将其安装在设备上

$cd android && ./gradlew installrelease

请注意,只有在您按上述方式设置签名后才能使用installrelease.

您可以终止任何正在运行的打包程序实例,所有和框架JavaScript代码都捆绑在APK的资产中.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...