Androidエージェント FAQ
Q. 難読化によってエラーが発生します。
A. アプリを配布する際にコード縮小、難読化、最適化を行う場合、NetFUNNEL Androidエージェントは除外する必要があります。
そのためには、proguard-rules.pro というProguardルールファイルに下記の内容を追加し、難読化から除外できます。
# NetFUNNEL Androidエージェントの主要なパッケージとクラスを保護
-keep class com.nf4.** { *; }
# NetFUNNEL Androidエージェント内で使用するリフレクション関連のクラスとメンバーを保持
-keepclassmembers class com.nf4.** { *; }
Q. デバッグ用ログメッセージを確認したいです。
A. デバッグのためにNetFUNNEL Androidエージェントから出力されるログメッセージを確認する方法は以下の通りです:
-
初期化関数で
printLog=trueに設定します。 -
Android StudioのLogcatで、
package:mine NetFUNNELをフィルターにして確認します。
ビルド環境ごとのNetFUNNEL Androidエージェントログ活用ガイド
デバッグ時は printLog を true に設定することを推奨しますが、アプリリリース時は false に設定することを推奨します。
Q. コールバック関数でUIを更新したいです。
A. コールバック関数を使用している際にUIを更新する場合は注意が必要です。
非同期で動作するNetFUNNELのコールバック関数内で Toast などのUI要素を直接呼び出すと、java.lang.NullPointerException エラーが発生することがあります。
そのため、NetFUNNELのコールバック関数を使う場合は、Activity.runOnUiThread(Runnable) メソッドを使い、UIの更新処理を非同期スレッドからメインスレッドに切り替えて実行してください。
例えば、以下のようにすべてのUI関連処理をメインスレッドで安全に実行できます。
activity.runOnUiThread {
Toast.makeText(activity, "正常に入場しました。", Toast.LENGTH_SHORT).show()
}
Q. HTTP通信時にエラーが発生します。
A. NetFUNNEL Androidエージェントは基本的にHTTPS通信を推奨しますが、HTTP通信を利用する場合はAndroidのセキュリティポリシーによりエラーが発生する場合があります。
ただし、network_security_config.xml 設定ファイルを作成することでHTTP通信を許可することができます。
res/xml/network_security_config.xmlファイルを作成
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">{{DOMAIN_URL}}</domain>
</domain-config>
</network-security-config>
AndroidManifest.xmlの設定を確認
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:networkSecurityConfig="@xml/network_security_config"
... >
</manifest>
Q. エージェントのバージョンを確認したいです。
A. エージェントのバージョンを確認するには、getVersion() 関数を利用できます。
| 関数名 | パラメータ | 戻り値 | 説明 |
|---|---|---|---|
| getVersion | N/A | String | NetFUNNELエージェントのバージョンを返す(確認する)関数 |