问题总结2015/05/05
1、第三方提供的庫不能使用。
調查方法:差分編譯,對比連接后和編譯后的差分情況;Debug單步調試,定位出錯代碼;由于是第三方庫不能使用的原因,反編譯輔助調查。
調查結果:本機編譯后的R文件中的資源ID和Jar包中索引的資源ID(Jar包的.class文件中資源ID是固定值)不一致。
解決方法:(轉)http://blog.csdn.net/p106786860/article/details/12152011
===========================================================
隨著Android系統的日益發展和日漸成熟,各種平臺的合作就日漸頻繁。現在主要互聯網公司,都退出了各種各樣的插件功能。如第三方支付,第三方聯合登陸和微博分享等等功能。?
。?
?
在每個Android項目中,都會有一個R.java文件,該文件由ADT維護的,只要你將資源文件放到工程里,或者聲明新的控件標識,ADT就會監測到,自動在R.java里注冊一個ID方便使用。?
?
[java] view plaincopyAndroid布局文件中的組件被調用時需要定義組件的android:id屬性,android:id屬性只能接受資源類型的值,就是必須以@開頭的值。我們聲明一個控件的ID有如下幾種方式:?
@+id:?=0x7f070007;?
?
[html] view plaincopy),。?
?
[html] view plaincopy。??
?
[html] view plaincopy?
?
/res/:?
文件:??=?()。?
?
[html] view plaincopypublic.xml文件:描述attr、id、drawable等所指定的一個32的id值,即id值。?
?
[html] view plaincopy
基礎的知識已經準備完畢,現在我們來描述原理。當我們將src目錄下的源碼通過Eclipse打出Jar后,源碼代碼中的如()中的R.id.id_name部分,都會被替換成此時在R文件中生成的id_name對應的ID值(如果有興趣的話,可以用反編譯軟件可以查看到)。。?
?
,@+id/?static final??=0x7f080001。當時當你將Jar提供給第三方的時候,在它的機器上生成的ID值可能就不是0x7f080001,就會出現由于Jar中固定的ID值與當前R文件中生成的ID值不一致,導致()。?
?
通過對上面只是的了解,我們可以用如下方式解決問題:通過使用ids.xml文件和public.xml文件,定義好固定的ID值,將聲明控件的方式由@+id改為@id形式,這樣引用控件和資源的id根據ids.xml和public.xml的聲明,在R文件中聲明為固定的值。一直與Jar中的ID值保持一致。?
?
?
:?
1.重新編譯項目,生成R文件。?
2.將R文件拷貝,根據R文件中的信息,獲得ids.xml和public.xml文件中的內容。?
文件格式:只需聲明@id的對應的R文件中id類型?
文件格式:需要聲明R文件中所有資源的類型?
。?
id的形式轉換成@id形式?
。?
4.使用Eclipse的Export功能,將項目src目錄下的源碼(注僅僅是src目錄下的源碼,其它資源我們將以庫項目的形式提供給用戶)導出Jar包,提供給用戶調用。?
?=?()。?
5.我們刪除該項目src下的源代碼,將該項目設置為庫項目,以供客戶引入或許Jar包中的布局,圖片等資源。?
到這里我們為客戶準備的東西已經完畢,1.srcjar.jar包,2.plugin資源庫項目。?
并引入我們的plugin資源庫項目)。?
7.將plugin資源庫項目的AndroidManifest.xml中的內容,添加到客戶項目中,并在客戶端項目中調用srcjar.jar包中的入口Activity即可。?
注意:如果在你的項目中存在調用本項目目錄調用資源,如assets下的apk或者mp3等文件,可以拷貝到客戶端相應的目錄即可。?
?
?
。?
===========================================================
?
2、表單提交時,提示數據通信異常(源代碼中的錯誤提示有誤導......坑爹=。=)。
調查方法:輔助fidder抓包工具,監控表單提高及服務器響應情況。
調查結果:服務器響應失敗。提交的表單中有不合法的數據。
前端與后端協作時要注重接口的對接(一切以接口文檔為準),出現問題時首先確保提交和返回的數據正確,然后在展開調查。
相關資料:
http://blog.csdn.net/xyz_lmn/article/details/8808169
http://www.cnblogs.com/tankxiao/archive/2012/02/06/2337728.html
http://blog.csdn.net/ithomer/article/details/6727581
http://blog.isming.me/2015/01/18/android-anti-decompile/
http://blog.csdn.net/vipzjyno1/article/details/23542617
轉載于:https://www.cnblogs.com/clong2010/p/4479657.html
總結
以上是生活随笔為你收集整理的问题总结2015/05/05的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java正则表达式提取字符串中的数字
- 下一篇: 采用HttpModules来重写URLS