使用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 >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">></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->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">></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">></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]