

AndroidStudioにてAndroidアプリを制作しております。  
JSONICを使用して下記の処理を実行すると、JSON.encode(hm);でExceptionエラーになり、printStackTraceでjsonicのライブラリが見つからない旨のメッセージが表示されます。

Exceptionエラーが発生せず、JSONICを使用したエンコード、デコードを実行する方法をご存知の方がいらっしゃいましたらご教授いただけないでしょうか。

[code]

    try{
        HashMap<String,Object> hm = new HashMap<>();
    
        hm.put("001","いちご");
        hm.put("002","にかん");
        hm.put("003","みかん");
    
        String json = JSON.encode(hm);
    }catch (Exception e){
        e.printStackTrace();
        return;
    }
    
[/code]

e.printStackTrace();での出力結果

> W/dalvikvm: Exception Ljava/lang/NoClassDefFoundError; thrown while  
>  initializing Lnet/arnx/jsonic/OptionalConverter; W/System.err:  
>  java.util.MissingResourceException: Can't find resource for bundle  
>  'net.arnx.jsonic.Messages_ja_JP', key '' W/System.err: at  
>  java.util.ResourceBundle.missingResourceException(ResourceBundle.java:238)

ライブラリのファイル配置

> app\src  
>  app\libs  
>  app\libs\jsonic-1.3.10-sources.jar  
>  app\libs\jsonic-1.3.10.jar

build.gradle

[code]

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile files('libs/jsonic-1.3.10.jar')
        compile files('libs/jsonic-1.3.10-sources.jar')
    }
    
[/code]


CC BY-SA 3.0
2017-04-20T04:08:06.037
34142
2017-04-20T11:29:29.567
22662
question
android android-studio json
AndroidアプリでJSONICを使用した、デコード、エンコード処理を実行するとExceptionエラーになってしまいます


Android Studioでブランクプロジェクトを作成し、jsonic-1.3.10を使用してみましたが、特に問題なく使用できました。

但しその際に、2つほど気になる点がありました。

  1. build.gradle：`dependencies`の`compile files`は不要です  
`compile fileTree`でlibs配下のjarを指定しているので、改めて`libs/*.jar`を個別に指定する必要はないと思います。

  2. `jsonic-1.3.10.jar`と`jsonic-1.3.10-sources.jar`の2つを含める必要はありません  
両方含めた場合、こちらの環境ではエラーが発生しました。

>
[code]>     com.android.build.api.transform.TransformException:

>     com.android.builder.packaging.DuplicateFileException: Duplicate files
> copied in APK net/arnx/jsonic/Messages.properties
>  
[/code]

* * *

また質問文にあるエラーについてですが、  
`Can't find resource for bundle 'net.arnx.jsonic.Messages_ja_JP', key ''`  
このエラーはアプリのクラスパスに`net/arnx/jsonic/Messages_ja.properties`もしくは`net/arnx/jsonic/Messages.properties`が含まれていないことが原因です。

* * *

**・2つのjar含めてもエラーが発生していない  
・`Can't find resource for bundle 'net.arnx.jsonic.Messages_ja_JP', key
''`のエラーが発生している**

上記２点から考えると、ビルドしたアプリに`jsonic-1.3.10.jar`が正しく含まれていないのではないでしょうか？


CC BY-SA 3.0
2017-04-20T08:34:41.573
34158
2017-04-20T11:29:29.567
2017-04-20T11:29:29.567
20272
20272
34142
answer