berkus / android-apktool

Automatically exported from code.google.com/p/android-apktool
Other
1 stars 0 forks source link

lose layout_width attribute? #176

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
1.decompile mms.apk
2.recompile (nothing chang)
3.put into mobile
mms FC
logcat

E/AndroidRuntime( 2668): FATAL EXCEPTION: main
E/AndroidRuntime( 2668): java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.android.mms/com.android.mms.ui.ConversationList}: 
java.lang.Runt
imeException: Binary XML file line #4: You must supply a layout_width attribute.

Original issue reported on code.google.com by coolf...@gmail.com on 12 Jun 2011 at 2:33

GoogleCodeExporter commented 9 years ago
Could you upload mms.apk and framework if needed to multiupload.com or 
somewhere?

Original comment by Brut.alll on 12 Jun 2011 at 12:10

GoogleCodeExporter commented 9 years ago
Hi,Brut.alll
mms.apk and framework.apk is here
http://www.multiupload.com/377CF3HHPM

Original comment by coolf...@gmail.com on 12 Jun 2011 at 3:17

GoogleCodeExporter commented 9 years ago
hi,Brut.alll

D:\Incredible\2.3\app_1>call apktool d -f -t incre2.31 GenieWidget.apk

I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Loading resource table from file: C:\Documents and Settings\coolfree\apktool\
framework\1.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: 13
        at java.lang.String.charAt(Unknown Source)
        at brut.androlib.res.xml.ResXmlEncoders.findNonPositionalSubstitutions(R
esXmlEncoders.java:165)
        at brut.androlib.res.xml.ResXmlEncoders.hasMultipleNonPositionalSubstitu
tions(ResXmlEncoders.java:138)
        at brut.androlib.res.data.value.ResStringValue.serializeExtraXmlAttrs(Re
sStringValue.java:63)
        at brut.androlib.res.data.value.ResScalarValue.serializeToResValuesXml(R
esScalarValue.java:65)
        at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResour
ces.java:264)
        at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:137
)
        at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:93)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
        at brut.apktool.Main.cmdDecode(Main.java:120)
        at brut.apktool.Main.main(Main.java:57)
I: Baksmaling...
I: Loading resource table...
W: Skipping "android" package group
I: Loaded.
I: Loading resource table from file: C:\Documents and Settings\coolfree\apktool\
framework\1.apk
I: Loaded.
I: Loading resource table from file: C:\Documents and Settings\coolfree\apktool\
framework\2-incre2.31.apk
I: Loaded.
I: Decoding file-resources...
I: Decoding values*/* XMLs...
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: 31
        at java.lang.String.charAt(Unknown Source)
        at brut.androlib.res.xml.ResXmlEncoders.findNonPositionalSubstitutions(R
esXmlEncoders.java:165)
        at brut.androlib.res.xml.ResXmlEncoders.enumerateNonPositionalSubstituti
ons(ResXmlEncoders.java:142)
        at brut.androlib.res.data.value.ResStringValue.encodeAsResXmlValue(ResSt
ringValue.java:45)
        at brut.androlib.res.data.value.ResArrayValue.serializeToResValuesXml(Re
sArrayValue.java:55)
        at brut.androlib.res.AndrolibResources.generateValuesFile(AndrolibResour
ces.java:264)
        at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:137
)
        at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:93)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
        at brut.apktool.Main.cmdDecode(Main.java:120)
        at brut.apktool.Main.main(Main.java:57)

this is htc new version rom
download here include Settings.apk GenieWidget and
com.htc.resources.apk framework-res.apk
http://www.multiupload.com/4DXUMQAW80

Original comment by coolf...@gmail.com on 12 Jun 2011 at 3:37

GoogleCodeExporter commented 9 years ago
"mms.apk and framework.apk is here"

I need Samsung's framework as well (most probably twframework-res.apk). I have 
tried one from Samsung Galaxy S2, but it didn't work.

"this is htc new version rom
download here include Settings.apk GenieWidget and
com.htc.resources.apk framework-res.apk"

Is this in any way related to above issue?

See Issue 169

Original comment by Brut.alll on 12 Jun 2011 at 4:47

GoogleCodeExporter commented 9 years ago
Hi,friend
http://www.multiupload.com/Q5E7VV3R9I
samsung apk files

Original comment by coolf...@gmail.com on 12 Jun 2011 at 6:04

GoogleCodeExporter commented 9 years ago
I think the problem is in res/layout/conversation_list_item.xml#4: 
"style="@*android:style/Widget.QuickContactBadge.WindowSmall". I don't know 
what that asterisk is, in AOSP there is a "?" there. I've checked that and 
seems it was really modified to "@*", but I don't know why.

I have rebuilt this apk and seems "@*" was rebuilt properly - it's exactly the 
same as original apk. What version of aapt do you use? Could you upload Mms.apk 
rebuilt by you (which doesn't work)?

You could also try to change "@*" to "?" in 
res/layout/message_contact_header.xml, res/layout/search_item.xml, 
res/layout/conversation_list_item.xml and see if that helps.

Original comment by Brut.alll on 12 Jun 2011 at 7:33

GoogleCodeExporter commented 9 years ago
http://www.multiupload.com/93QOYUVBGJ  friend,it's my build, nothing
change

Original comment by coolf...@gmail.com on 12 Jun 2011 at 7:48

GoogleCodeExporter commented 9 years ago
Hi,friend
there are other error message

E/AndroidRuntime( 2668): FATAL EXCEPTION: main
E/AndroidRuntime( 2668): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.android.mms/com.android.mms.ui.ConversationList}:
java.lang.RuntimeException: Binary XML file line #4: You must supply a
layout_width attribute.
E/AndroidRuntime( 3090): FATAL EXCEPTION: main
E/AndroidRuntime( 3090): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.android.mms/com.android.mms.ui.ConversationList}:
java.lang.RuntimeException: Binary XML file line #4: You must supply a
layout_width attribute.
E/AndroidRuntime( 3090): Caused by: java.lang.RuntimeException: Binary XML
fileline #4: You must supply a layout_width attribute.
E/AndroidRuntime( 2969): FATAL EXCEPTION: main
E/AndroidRuntime( 2969): java.lang.RuntimeException: Unable to start
activity
ComponentInfo{com.android.mms/com.android.mms.ui.ComposeMessageActivity}:
java.lang.RuntimeException: Binary XML file line #5: You must supply a
layout_width attribute.
E/AndroidRuntime( 3279): java.lang.RuntimeException: Unable to start
activity
ComponentInfo{com.android.mms/com.android.mms.ui.ComposeMessageActivity}:
java.lang.RuntimeException: Binary XML file line #5: You must supply a
layout_width attribute.
E/AndroidRuntime( 3279):        at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

2011/6/13 CoolFree <coolfree@gmail.com>

Original comment by coolf...@gmail.com on 12 Jun 2011 at 7:54

GoogleCodeExporter commented 9 years ago
friend,i will change @*android to ?*android and build it now and test it

2011/6/13 CoolFree <coolfree@gmail.com>

Original comment by coolf...@gmail.com on 12 Jun 2011 at 7:58

GoogleCodeExporter commented 9 years ago
aapt v
 it's version is V0.2

2011/6/13 CoolFree <coolfree@gmail.com>

Original comment by coolf...@gmail.com on 12 Jun 2011 at 8:07

GoogleCodeExporter commented 9 years ago
hi ,friend
 i change @*android to ?android  build and put to mobile, it's same error

E/AndroidRuntime( 2753): FATAL EXCEPTION: main
E/AndroidRuntime( 2753): java.lang.RuntimeException: Unable to start
activity ComponentInfo{com.android.mms/com.android.mms.ui.ConversationList}:
java.lang.RuntimeException: Binary XML file line #4: You must supply a
layout_width attribute.
E/AndroidRuntime( 2753):        at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

2011/6/13 CoolFree <coolfree@gmail.com>

Original comment by coolf...@gmail.com on 12 Jun 2011 at 8:20

GoogleCodeExporter commented 9 years ago
Original XML:

    E: android.widget.QuickContactBadge (line=26)
      A: android:id(0x010100d0)=@0x7f080036
      A: android:visibility(0x010100dc)=(type 0x10)0x2
      A: android:layout_marginLeft(0x010100f7)=(type 0x5)0x701
      A: android:layout_centerVertical(0x01010191)=(type 0x12)0xffffffff
      A: style=@0x1030085 (Raw: "@*android:style/Widget.QuickContactBadge.WindowSmall")

XML rebuilt by you:

    E: android.widget.QuickContactBadge (line=4)
      A: android:id(0x010100d0)=@0x7f080036
      A: android:visibility(0x010100dc)=(type 0x10)0x2
      A: android:layout_marginLeft(0x010100f7)=(type 0x5)0x701
      A: android:layout_centerVertical(0x01010191)=(type 0x12)0xffffffff
      A: style=@0x103011d (Raw: "@*android:style/Widget.QuickContactBadge.WindowSmall")

As you can see ID of style attr has changed. 0x1030085 is an ID of 
Widget.QuickContactBadge.WindowSmall from Samsung's framework and 0x103011d is 
from Android SDK. It seems you have decoded apk with Samsung's framework 
installed and then you have removed $HOME/apktool/framework/1.apk or you have 
reinstalled it. Just install framework-res.apk (the same you have sent me), 
build apk and try to run it.

Original comment by Brut.alll on 12 Jun 2011 at 11:01

GoogleCodeExporter commented 9 years ago
Hi, friend
http://www.multiupload.com/PFQMIESLVI
this is new rebuild.
i reinstall framework.
this have same error

BTW

i cook samsung I997 rom
mms.apk have same error

Original comment by coolf...@gmail.com on 13 Jun 2011 at 2:01

GoogleCodeExporter commented 9 years ago
Nope, it's still 0x103011d:

     E: android.widget.QuickContactBadge (line=4)
      A: android:id(0x010100d0)=@0x7f080036
      A: android:visibility(0x010100dc)=(type 0x10)0x2
      A: android:layout_marginLeft(0x010100f7)=(type 0x5)0x701
      A: android:layout_centerVertical(0x01010191)=(type 0x12)0xffffffff
      A: style=@0x103011d (Raw: "@*android:style/Widget.QuickContactBadge.WindowSmall")

Run "aapt d xmltree Mms.apk res/layout/conversation_list_item.xml" to see above 
output. IDs have to be exactly the same as in original apk, so 
style=@0x1030085. And if you look into your framework file:

aapt d resources i500_1/framework-res.apk | grep -i 
Widget.QuickContactBadge.WindowSmall

      spec resource 0x01030085 android:style/Widget.QuickContactBadge.WindowSmall: flags=0x00000000
        resource 0x01030085 android:style/Widget.QuickContactBadge.WindowSmall: <bag>

you'll find Widget.QuickContactBadge.WindowSmall is set to 0x01030085 in your 
file, not to 0x103011d, so I'm pretty sure you didn't build above apk using 
this framework. Did you maybe install twframework-res.apk, but didn't install 
framework-res.apk?

Original comment by Brut.alll on 13 Jun 2011 at 8:39

GoogleCodeExporter commented 9 years ago
Hi friend
 big thans to u
i use other framework in my script file .so make this error file
i'm sorry,friend

Original comment by coolf...@gmail.com on 13 Jun 2011 at 9:53

GoogleCodeExporter commented 9 years ago
It's ok :-)

Original comment by Brut.alll on 13 Jun 2011 at 11:33