Mobbeel / fataar-gradle-plugin

Gradle plugin to help embed dependencies in generated AAR artifact
https://plugins.gradle.org/plugin/com.mobbeel.plugin
Apache License 2.0
342 stars 44 forks source link

chinese characters not support #22

Closed epwtrq closed 5 years ago

epwtrq commented 5 years ago

in you demo i insert chinese characters in string.xml then build throw this exception"com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字节的 UTF-8 序列的字节 2 无效" already add in xml head encoding="utf-8" thanks !

BigggFish commented 5 years ago

I solved this problem by modifying CopyDependenciesTask.groovy please have a try

 def processValuesResource(String tempFolder) {
        File valuesSourceFile = new File("${tempFolder}/res/values/values.xml")
        File valuesDestFile = new File("${temporaryDir.path}/${variantName}/res/values/values.xml")

        if (valuesSourceFile.exists()) {
            if (!valuesDestFile.exists()) {
                project.copy {
                    from "${tempFolder}/res"
                    include "values/*"
                    into "${temporaryDir.path}/${variantName}/res"
                }
            } else {
                def valuesSource = new XmlSlurper().parse(valuesSourceFile)
                def valuesDest = new XmlSlurper().parse(valuesDestFile)
                valuesSource.children().each {

                        valuesDest.appendNode(it)
                    }
                }

                FileOutputStream fileOutputStream = new FileOutputStream(valuesDestFile, false)
                byte[] myBytes = XmlUtil.serialize(valuesDest).getBytes("UTF-8") // !!!修改了这
                fileOutputStream.write(myBytes)
                fileOutputStream.close()
            }
        }
    }
oscarcpozas commented 5 years ago

Hey @BigggFish, thanks for your contribution. Your solution is correct, why don't you give me a pull request?

oscarcpozas commented 5 years ago

https://github.com/Mobbeel/fataar-gradle-plugin/pull/25

bink-develop commented 5 years ago

this error still occur in my project

Execution failed for task ':module_sdk:copyReleaseDependencies'.

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。

And I have used the lastest. classpath "com.mobbeel.plugin:fat-aar:2.0.3"

Could you help me to resolve this?