Androidでビルドエラーを修正する方法


### 目次

1. はじめに<br>

2. 修正のヒント<br>

3. まとめ<br>

 

### はじめに
 
本記事では、Androidでよく発生するビルドエラーを修正するためのヒントを紹介していきます。 



### 修正のヒント
##### ※ 確認
SDKのパス設定は適切にできていますか？
問題が発生した時、パスが設定されていないか、間違ったパスを設定していることが多いです。:

![image003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592264/2c9d6147-268b-68bc-059b-fda317731622.png)




 

- Android sdkのパスを設定して再ビルドする必要があります。
- パスの中にスペースが入っている場合もあるので、確認が必要です。

 
![image005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592264/f8f039fa-6dbe-9a69-c046-12b61b1173a4.png)

 
※パスを設定しても、ビルドツールバージョンがvisualizerのバージョンと対応していない場合にもエラーになります。
以下で、対応バージョンを確認できます。
https://docs.kony.com/konylibrary/visualizer/visualizer_user_guide/Content/SUG_Android.htm#Gradle-related








#### 以下のAndroidビルドエラーが起きた時に見直すべき箇所  
> <font color="OrangeRed">The following error occurred while executing this line:
&emsp;/Users/systena/KonyVizEWS/temp/konyStudy/build/luaandroid/build.xml:3282: exec-shell returned: 1
Ant build error=The following error occurred while executing this line:
&emsp;/Users/systena/KonyVizEWS/temp/konyStudy/build/luaandroid/build.xml:3282: exec-shell returned: 1
The following error occurred while executing this line:
&emsp;/Users/systena/KonyVizEWS/temp/konyStudy/build/luaandroid/build.xml:3282: exec-shell returned: 1
Package Generation failed for platform Android.
Build Generation Status
Android: Failed
</font>
![スクリーンショット 2021-02-15 17.10.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592264/55451a31-2e79-7836-3d74-7a82c21779dd.png)

##### 1. デバイスのサポート設定が適切にされているか
- 使用している端末またはエミュレータのアーキテクチャと、Visualizerの設定が合っていない場合に発生することがあります。
- Konyの**Project Setting**で設定を変更することで修正です。
  Android端末に対応するサポートデバイスにチェックを入れるだけで解決します。

- 解決方法:

Project Setting > Native > Android > 
* **Support x86 Devices**
* **Support 64-bit Devices** にチェックを入れます。

 
![image001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592264/a4dc4771-1c19-5e46-4bec-3b3cb7217208.png)

※使用しているエミュレータのアーキテクチャの確認は、エミュレータ起動後、以下のコマンドで確認することができます。(64bitか32bitかを確認できます)

$ adb shell getprop ro.product.cpu.abi
![スクリーンショット 2021-02-15 18.18.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592264/3b15a223-6a98-cd0e-3993-4739ab0dcb0d.png)

ビルドエラーではありませんが、apkインストールの際に、エミュレータの画面に以下のエラーが出た時も、同様の手順でエラーが解消される可能性があります。

> Android APK [INSTALL_FAILED_NO_MATCHING_ABIS：Failed to extract native libraries、res = -113]
 

##### 2. 画像の命名規則違反をしていないか

- 画像の名前は、小文字のa-z、0-9、アンダースコアを使うなどの命名規則に従って付けなければいけません。  

試しに、"ProjectName" > resource > mobile > common に命名規則を無視した画像(ICON-123.png)を手動で入れてビルドしてみると、エラー1が発生しました。

![スクリーンショット 2021-02-15 17.10.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/592264/55451a31-2e79-7836-3d74-7a82c21779dd.png)

 
画像は 小文字、アンダースコア、数字のみで設定しましょう:

```

誤 : icon_logout_PNK.png

正 : icon_logout_pnk.png
```

- アンダースコアの代わりにハイフンを使ったケース

```

誤 : icon-logout-pnk.png

正 : icon_logout_pnk.png
```


<br>


 

#### その他
##### - ビルドに成功してもFFIが動作しない

- FFI（Foreign Function Interface）とは、あるプログラミング言語で書かれたアプリケーションが、他のプログラミング言語で書かれたメソッドや関数、サービスを利用するためのサポートを提供する仕組みです。
 
- この仕組みを利用して、iOSやAndroidのネイティブSDKの関数を呼び出すことができます。また、FFIはサードパーティ製の様々なツールの統合にも利用されています。
 

この場合、FFIがうまく設定されていないことがあります。
以下を試してみてください。:

**Edit > Integrate Third Party > Manage Custom Libraries > Finish　をクリックする**

この手順でFFIの設定を更新することができます。
 



### まとめ

 

今回は、Androidのビルドエラーを修正するヒントをご紹介しました。Visualizerの設定で解消できるエラーもあるので、該当のエラーに遭遇した際はぜひ試してみてください。

この他にも、質問や別の解決策があれば是非教えてください！この記事があなたのお役に立つことを願っています:sunny:

##### ※ 今後新たにエラーが出た場合は、記事を更新していきます
 

#### 参考

_Kony Doc_

 

https://basecamp.temenos.com/s/question/0D72K000004XmLF/detail

 

https://basecamp.temenos.com/s/question/0D56A00000j1ekO/ant-build-error

 

https://docs.kony.com/6_5/konylibrary/studio/studio_user_guide/Content/Foreign_Function_Interface_JS.htm

https://basecamp.temenos.com/s/question/0D52K00004Mg47YSAR/not-able-to-run-android-apk-on-emulator-or-the-device

https://docs.kony.com/konylibrary/visualizer/visualizer_user_guide/Content/SUG_Android.htm#Gradle-related