小岳 發表於 2019-10-19 07:35:00

使用android studio发布android与flutter混合开发项目

<svg xmlns="http://www.w3.org/2000/svg" style="display: none">
                        <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0)"></path>
                  </svg>
                                          <h3>一、生成androd签名证书</h3>
<p>Android studio的Build &gt;Grenerate Signed Bundle<br>
<img src="https://img-blog.csdnimg.cn/20191019073839291.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
选择apk<br>
<img src="https://img-blog.csdnimg.cn/20191019073923638.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
点击Create New<br>
<img src="https://img-blog.csdnimg.cn/20191019074019337.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
录入对应的签名信息;点击确定<br>
<img src="https://img-blog.csdnimg.cn/20191019074358901.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
对应盘符下就会生成一个签名文件<br>
<img src="https://img-blog.csdnimg.cn/20191019074525742.png"></p>
<h3>二、拷贝签名到项目目录</h3>
<p>将签名文件拷入项目的app目录下<img src="https://img-blog.csdnimg.cn/2019101907484838.png"></p>
<h3>三、配置 greadle.properties</h3>
<p>在greadle.properties中增加如下配置(对应上一步生成的签名证书的别名,密码)</p>
<pre><code class="prism language-shell">
MYAPP_RELEASE_KEY_ALIAS<span class="token operator">=</span>android_keystore <span class="token comment"># 别名</span>
MYAPP_RELEASE_KEY_PASSWORD<span class="token operator">=</span>123456 <span class="token comment"># 别名密码</span>
MYAPP_RELEASE_STORE_PASSWORD<span class="token operator">=</span>123456 <span class="token comment"># 证书密码</span>
MYAPP_RELEASE_STORE_FILE<span class="token operator">=</span>android_keystore.jks <span class="token comment"># 证书路径</span>

</code></pre>
<h3>四、配置build.gradle(Module:app)</h3>
<p>在android下增加如下配置(注意release中配置的value一定要对应到上一步greadle.properties中配置的key,否则编译报错)</p>
<pre><code class="prism language-shell">
android <span class="token punctuation">{</span>
        <span class="token comment"># 省略其他配置 ....</span>

       <span class="token comment"># 新增配置</span>
    signingConfigs<span class="token punctuation">{</span>
      release<span class="token punctuation">{</span>
            storeFile file<span class="token punctuation">(</span>MYAPP_RELEASE_STORE_FILE<span class="token punctuation">)</span>
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>
    buildTypes <span class="token punctuation">{</span>
      release <span class="token punctuation">{</span>
         <span class="token comment"># 省略其他配置 ....</span>
         <span class="token comment"># 新增配置</span>
      signingConfig signingConfigs.release
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>
<span class="token comment"># 省略其他配置 ....</span>
<span class="token punctuation">}</span>

</code></pre>
<h3>五、解决 Compatible side by side NDK version was not found.</h3>
<p>配置完成后<br>
使用android studio运行<code>gradlew assembleRelease</code> 打包发布android与flutter混合开发项目提示</p>
<pre><code class="prism language-shell">D:\learnFlutter\flutter_hybrid\Flutterhybridandroid<span class="token operator">&gt;</span>gradlew assembleRelease

Compatible side by side NDK version was not found.
Unable to strip library <span class="token string">'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\arm64-v8a\libapp.so'</span> due to missing strip tool <span class="token keyword">for</span> ABI <span class="token string">'ARM64_V8A'</span><span class="token keyword">.</span> Packaging it as is.
Unable to strip library <span class="token string">'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\armeabi-v7a\libflutter.so'</span> due to missing strip tool <span class="token keyword">for</span> ABI <span class="token string">'ARMEABI_V7A'</span><span class="token keyword">.</span> Packaging it as is.
62 actionable tasks: 59 executed, 3 up-to-date

</code></pre>
<p>Android studio的File-&gt;Project Structure窗口下进行NDK的相关下载<br>
<img src="https://img-blog.csdnimg.cn/20191019075826277.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
等待下载完成<br>
<img src="https://img-blog.csdnimg.cn/2019101907592826.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
现在完成后会自动同步ndk路径<br>
<img src="https://img-blog.csdnimg.cn/20191019080741977.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
点击OK后gradle会自动同步<img src="https://img-blog.csdnimg.cn/20191019080905200.png"></p>
<h3>六、解决 Compatible side by side NDK version was not found.</h3>
<p>有提示了另一个错误</p>
<pre><code class="prism language-shell">
Compatible side by side NDK version was not found.
Unable to strip library <span class="token string">'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\arm64-v8a\libapp.so'</span> due to missing strip tool <span class="token keyword">for</span> ABI <span class="token string">'ARM64_V8A'</span><span class="token keyword">.</span> Packaging it as is.
Unable to strip library <span class="token string">'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\armeabi-v7a\libflutter.so'</span> due to missing strip tool <span class="token keyword">for</span> ABI <span class="token string">'ARMEABI_V7A'</span><span class="token keyword">.</span> Packaging it as is.
62 actionable tasks: 59 executed, 3 up-to-date
D:\learnFlutter\flutter_hybrid\Flutterhybridandroid<span class="token operator">&gt;</span>gradlew assembleRelease
62 actionable tasks: 8 executed, 54 up-to-date

</code></pre>
<p>根据android官网提示进行ndk版本配置<img src="https://img-blog.csdnimg.cn/20191019083335768.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"></p>
<p>到安装的ndk目录下找到souce.propertites打开<img src="https://img-blog.csdnimg.cn/2019101908245083.png"><br>
根据<img src="https://img-blog.csdnimg.cn/20191019082537583.png"><br>
在build.properties中配置ndk版本<img src="https://img-blog.csdnimg.cn/20191019082605621.png"><br>
配置完成gradle自动同步<img src="https://img-blog.csdnimg.cn/2019101908170115.png"></p>
<h3>七、最后执行 gradlew assembleRelease打包</h3>
<p>终于没有提到错误了</p>
<pre><code class="prism language-shell">
D:\learnFlutter\flutter_hybrid\Flutterhybridandroid<span class="token operator">&gt;</span>gradlew assembleRelease
62 actionable tasks: 5 executed, 57 up-to-date


</code></pre>
<p>在project 目录下也看见了久违的app-release.apk<img src="https://img-blog.csdnimg.cn/20191019083109474.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0ODE3NDQw,size_16,color_FFFFFF,t_70"><br>
<br><br></p>
<p><strong>最后就可以将这个apk发到真机安装了</strong></p><br><br>
来源:https://www.cnblogs.com/dengxiaoning/p/11703021.html
頁: [1]
查看完整版本: 使用android studio发布android与flutter混合开发项目