#android
#Android
Вопрос:
Я пытаюсь использовать layoutopt (из SDK) для макетов в моем проекте.
Каждый раз, когда я запускаю layoutopt на макете, в котором где-то есть ‘android: layout_weight’, я получаю это исключение:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.substring(Unknown Source)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.getAt(DefaultGroovyMethods.java:2794)
at org.codehaus.groovy.runtime.dgm$213.doMethodInvoke(Unknown Source)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:44)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at Script5.run(Script5.groovy:15)
at com.android.layoutopt.uix.rules.GroovyRule$1.call(GroovyRule.java:50)
at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:105)
at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:212)
at com.android.layoutopt.uix.rules.GroovyRule.run(GroovyRule.java:65)
at com.android.layoutopt.uix.LayoutAnalyzer.applyRules(LayoutAnalyzer.java:246)
at com.android.layoutopt.uix.LayoutAnalyzer.analyze(LayoutAnalyzer.java:233)
at com.android.layoutopt.uix.LayoutAnalyzer.analyze(LayoutAnalyzer.java:238)
at com.android.layoutopt.uix.LayoutAnalyzer.analyze(LayoutAnalyzer.java:221)
at com.android.layoutopt.uix.LayoutAnalyzer.analyze(LayoutAnalyzer.java:153)
at com.android.layoutopt.uix.LayoutAnalyzer.analyze(LayoutAnalyzer.java:128)
at com.android.layoutopt.cli.Main.analyze(Main.java:61)
at com.android.layoutopt.cli.Main.analyzeFiles(Main.java:53)
at com.android.layoutopt.cli.Main.main(Main.java:46)
У кого-нибудь есть идея, почему это происходит?
Комментарии:
1. Добавили ли вы атрибут android:weightSum в родительский макет?
2. Спасибо за комментарии. Я нашел проблему, проблему со схемами. Я покажу пример в тот момент, когда смогу опубликовать (низкая репутация)
Ответ №1:
Извините, но я нашел свою проблему.
В макете у меня было 2 схемы, указывающие на одно и то же место:
<LinearLayout android:layout_height="59dp"
android:layout_width="321dp" android:background="@android:color/transparent"
xmlns:android1="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal">
</LinearLayout>
Я не знаю, как это произошло, возможно, ошибка или что-то в этом роде, я этого не писал.
В любом случае, это привело к сбою layoutopt.
Спасибо за попытку помочь