[英]Upload Android image to php server error
我對Java / Android編程非常陌生,我不確定如何“啟動”這部分代碼。 在我的AndroidManifest.xml文件中,我將其設置為第一個活動,假設該活動將在啟動時立即啟動:
<activity
android:name=".UploadImage"
android:label="@string/title_activity_starting_point" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
不幸的是,它不能以這種方式工作,因為每當我啟動該應用程序時,它都會“意外停止”。 我在這里放置的任何其他Java類都可以正常啟動,因此我認為這是代碼中的內容。 我只是不確定要讓代碼“運行”在什么地方,因為每次編譯它時,程序都會在手機上崩潰。
LogCat表示無法解析以下代碼行:
String image_str = Base64.encodeBase64String(byte_arr);
// old code was String image_str = Base64.encodeBytes(byte_arr),
// but this didn't compile for me and a comment on another website
// said that encodeBase64String could replace it...apparently not?
歡迎使用Android。
首先,在Eclipse中找到您的logCat。 它會是您最好的朋友(也是很多挫敗感的來源)。
其次,一旦找到logCat,您很可能會看到NetworkOnMainThread異常。 這意味着您正在嘗試在主UI線程上執行Network請求,這將導致屏幕“凍結”並結結。 這是一個禁忌,從Android 4.0開始,它將使您的應用程序崩潰。
有一種方法可以顯式地覆蓋它,但是如果您學會了避免從頭開始,那就更好了-一點也不困難。 只需使用AsyncTask即可 。
最后,請確保您在清單中具有INTERNET權限。
顯然,我輸入的Base64文件是從原始文件修改而來的。 'encodeBase64String'不存在,並且使用:
int flag = 0;
String image_str = Base64.encodeToString(byte_arr, flag);
解決了問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.