我想通過HttpClient發送一些數據,並試圖使用協議緩衝區。 描述符已被創建,以及我的.proto文件被編譯以獲取關聯的.java文件。我在我的Android類中調用這個類沒有任何問題,並且喜歡教程&自述文件可以說。 Eclipse不會抱怨任何事情。安卓和Eclipse的協議緩衝區:NoClassDefFoundError
現在我將下載庫(protobuf-2.5.0rc1和protoc-2.5.0rc1-win32)的所有編譯文件添加到.jar(整個文件夾中的javac,然後tar cvf)。
這個.jar文件現在位於:libs + AndroidDependencies + ReferencedLibrairies。
原始文件位於/ libs文件夾中。 在構建路徑中,protobuf.jar庫設置爲導出。
啓動應用程序工作正常,但每當我試圖用我的原製造商,這裏是我從DDMS得到:
12-13 13:55:54.750: E/AndroidRuntime(12647): Caused by: java.lang.NoClassDefFoundError: xxx.xxxx.xxxx.yyy.ProtoObject$Objectmsg
12-13 13:55:54.750: E/AndroidRuntime(12647): at xxx.xxxx.xxxx.xxx.myActivity$Task.doInBackground(myActivity.java:x)
12-13 13:55:54.750: E/AndroidRuntime(12647): at xxx.xxxx.xxxx.xxx.myActivity$Task.doInBackground(myActivity.java:x)
這裏是我的原型文件
package xxx.xxxx.xxxx.yyy;
option java_outer_classname="ProtoObject";
message Objectmsg {
required int32 aaa = 1;
required string bbb = 2;
required string ccc = 3;
required string ddd = 4;
required string eee = 5;
repeated string fff = 6;
repeated string ggg = 7;
repeated string hhh = 8;
}
中的代碼Android應用程序
import xxx.xxxx.xxxx.yyy.ProtoObject;
...
Objectmsg omsg = ProtoObject.Objectmsg.newBuilder()
.setAaa(an Integer)
.setBbb(a String)
.setCcc(a String)
.setDdd(a String)
.addAllEee(an arraylist)
.addAllFff(an arraylist)
.addAllGgg(an arraylist)
.build();
我真的不知道我可以在哪裏搞亂任何庫鏈接NG。如果你們中的任何一個人對可能缺失的東西有所瞭解,那就是甜心!
在此先感謝。
編輯::
當我看看的dexedLibs文件夾(如/ bin內)的支持庫有一個真正的大小時protobuf的是1 KB大!
android-support-v4-4a44d81301e680a21725a9812ec65b60 132kB
protobuf-d8a49056234d83f3a745e8697859be32 1kB
你可以發佈您的代碼,以便更好地理解。 –
代碼就在這裏了。我可以在建設者上添加電話,但我非常懷疑這會有所幫助。 – PeterGriffin
我想你發佈到服務器創建一個prblm –