React Native Android build apk错误 - ':app:packageRelease'

时间:2017-06-16 16:44:18

标签: react-native react-native-android

我正在尝试按照RN official docs中的步骤为RN项目创建apk。但是我收到了错误:

任务执行失败':app:packageRelease'。

  

com.android.ide.common.signing.KeytoolException:无法从商店“F:\ project \ myProject \ android \ app \ my-release-key.keystore”读取密钥my-key-alias:没有密钥在密钥库F:\ project \ myProject \ android \ my-release-key.keystore

中找到别名'my-key-alias'

我做了:

  1. 创建my-release-key.keystore
  2. 将其放在myProject\android\app文件夹
  3. C:\Users\Username\.gradle\gradle.properties(Win):(更新)

      MYAPP_RELEASE_STORE_FILE=my-release-key.keystore 
      MYAPP_RELEASE_KEY_ALIAS=my-key-alias 
      MYAPP_RELEASE_STORE_PASSWORD=***** (actual pwd)
      MYAPP_RELEASE_KEY_PASSWORD=***** (actual pwd)
    
  4. myProject\android\app\build.gradle中,添加了

    signingConfigs {
          release {
           if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
              storeFile file(MYAPP_RELEASE_STORE_FILE)
              storePassword MYAPP_RELEASE_STORE_PASSWORD
              keyAlias MYAPP_RELEASE_KEY_ALIAS
              keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
         }
    }
    
  5. 最后cd android && ./gradlew assembleRelease - 发生错误。

  6. 我还尝试了显示相同错误的cd android &&./gradlew assembleRelease

    我仔细检查了所有的值和文件,但没有运气。如果有人愿意,那将是非常好的

1 个答案:

答案 0 :(得分:0)

从最后一行的错误。它说在.. \ android \ my-release-key.keystore中没有找到关键别名,而不是在你的密钥库驻留的.. \ _and \ android \ app \ my-release-key.keystore中。

  

在密钥库中找不到别名为“my-key-alias”的密钥   F:\项目\ myProject的\机器人\我的释放,key.keystore

来自RN网站,

  

编辑文件〜/ .gradle / gradle.properties并添加以下内容   (用正确的密钥库密码,别名和密钥替换*****   密码),

将此代码从const Elem = (props) =>{ return (<div> <h1 onClick={props.clickon} id="GM"> Good Morning! <br/> {props.name} {props.last} <br /> This is phase three</h1> <button id="btn1" onClick={props.clickon}> {props.text} </button> <button id="btn2" onClick={props.clickon}> Second Button </button> </div> ); }; class App extends React.Component{ constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); } handleClick(){ var clickedId = event.target.id; console.log(clickedId); alert("It works! You clicked " + clickedId) } render(){ return ( <Elem name = 'paul' last='shreeman' clickon={this.handleClick} text='PushMe'/> ) } } ReactDOM.render( <App />, document.getElementById('root')) 传输到C:\Users\Username\.gradle文件

~/.gradle/gradle.properties