Video: Cách khắc phục lỗi rất tiếc ứng dụng đã dừng lại trên android, Unfortunately app has stopped errors 2025
Có một số giai đoạn để phát triển một ứng dụng Twitter sẽ hoạt động trên các thiết bị Android. Một điều bạn cần phải giải quyết là hoạt động chính của ứng dụng. Đoạn mã sau chứa mã Java của ứng dụng Twitter. Gói
. allmycode. twitter; nhập khẩu android ứng dụng. Hoạt động; nhập khẩu android os. AsyncTask; nhập khẩu android os. Bó; nhập khẩu android bản văn. Có thể chỉnh sửa; nhập khẩu android bản văn. TextWatcher; nhập khẩu android bản văn. phương pháp. ScrollingMovementMethod; nhập khẩu android lượt xem. Lượt xem; nhập khẩu android widget. Chỉnh sửa văn bản; nhập khẩu android widget. TextView; nhập khẩu java. util. Danh sách; nhập twitter4j. Twitter; nhập twitter4j. TwitterException; nhập twitter4j. TwitterFactory; nhập twitter4j. conf. ConfigurationBuilder; lớp MainActivity công khai mở rộng hoạt động {TextView textViewCountChars, textViewTimeline; Chỉnh sửaTextTextTweet, editTextUsername; Twitter twitter; @ Vượt qua được bảo vệ void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (bố cục R. activity_main); editTextTweet = (EditText) findViewById (R id id chỉnh sửaTextTweet); editTextTweet. addTextChangedListener (mới MyTextWatcher ()); textViewCountChars = (TextView) findViewById (R id id. textViewCountChars); editTextUsername = (EditText) findViewById (R id id chỉnh sửaTextUsername); textViewTimeline = (TextView) findViewById (R id id. textViewTimeline); textViewTimeline. setMovementMethod (mới ScrollingMovementMethod ()); ConfigurationBuilder builder = mới ConfigurationBuilder (); người xây dựng. setOAuthConsumerKey ("01qedaqsdtdemrVJIkU1dg"). setOAuthConsumerSecret ("TudeMgXgh37Ivq173SNWnRIhI"). setOAuthAccessToken ("1385541-ueSEFeFgJ8vUpfy6LBv6"). setOAuthAccessTokenSecret ("G2FXeXYLSHI7XlVdMsS2e"); Nhà máy TwitterFactory = mới TwitterFactory (xây dựng xây dựng ()). twitter = nhà máy. getInstance ();} // Button click listeners public void onTweetButtonClick (Xem chế độ xem) {new MyAsyncTaskTweet () mới. thực hiện (editTextTweet getText ().toString ());} public void onTimelineButtonClick (View view) {new MyAsyncTaskTimeline (). thực hiện (editTextUsername getText () để toString ());} // Count ký tự trong trường lĩnh vực Tweet MyTextWatcher thực hiện TextWatcher {@Chuyển công void afterTextChanged (Có thể chỉnh sửa được) {textViewCountChars.setText ("" + editTextTweet) getText () length ());} @Override public void beforeTextChanged (CharSequence s, int bắt đầu, int count, int sau) {} Xoá bỏ void onTextChanged (CharSequence s, int bắt đầu, int trước, đếm int) {}} // Lớp AsyncTask public class MyAsyncTaskTweet mở rộng AsyncTask {@Override protected String doInBackground (Chuỗi … tweet) {Kết quả chuỗi = ""; thử {twitter. updateStatus (tweet [0]); result = getResources (). getString (chuỗi R. Thành công);} catch (TwitterException twitterException) {result = getResources (). getString (chuỗi R. twitter_failure);} catch (Exception e) {result = getResources (). getString (chuỗi R. general_failure);} return result;} @Override protected void onPostExecute (Kết quả chuỗi) {editTextTweet. setHint (kết quả); editTextTweet. setText ("");}} lớp công khai MyAsyncTaskTimeline mở rộng AsyncTask {@Override protected String doInBackground (String … username) {Kết quả Chuỗi = new String (""); Danh sách trạng thái = null; thử {statuses = twitter. getUserTimeline (username [0]);} catch (TwitterException twitterException) {result = getResources (). getString (chuỗi R. twitter_failure);} catch (Exception e) {result = getResources (). getString (R. string. general_failure);} cho (twitter4j Tình trạng trạng thái: trạng thái) {result + = status. getText (); result = "n";} return result;} @Override protected void onPostExecute (Kết quả chuỗi) {editTextUsername. setText (""); textViewTimeline. setText (result);}}}
Giao thức mạng của Twitter đòi hỏi thiết bị chạy hầu hết các ứng dụng được đặt đúng thời gian. Điều này có thể có thể gây ra cho bạn rất nhiều rắc rối chạy ứng dụng trên giả lập. Nếu bạn phải đối mặt với vấn đề này, thông báo lỗi xuất hiện trở lại từ Twitter (thường là xác định một thách thức xác thực null) không hữu ích. Vì vậy, bạn có thể tránh được nhiều rắc rối bằng cách tránh giả lập bất cứ khi nào bạn kiểm tra mã này. Chỉ cần đặt điện thoại hoặc máy tính bảng của bạn để có được thời gian mạng tự động. Sau đó chạy ứng dụng trên thiết bị đó.
Khi bạn chạy ứng dụng, bạn sẽ thấy hai khu vực. Một khu vực có nút Tweet; khu vực khác chứa một nút Timeline.
Trong ảnh này, văn bản trong cả hai trường văn bản có màu xám nhạt. Điều này xảy ra vì android: các thuộc tính gợi ý được sử dụng trong mã. Một gợi ý là một bó ký tự chỉ xuất hiện khi trường văn bản trống. Khi người dùng nhấp vào bên trong trường văn bản, hoặc gõ bất kỳ văn bản nào bên trong trường văn bản, gợi ý sẽ biến mất.
Nhập một tweet vào trường văn bản ở trên cùng; sau đó nhấn nút Tweet.
Nếu nỗ lực của bạn để tweet thành công, tin nhắn Thành công! thay thế tweet trong trường văn bản.
Nếu, vì lý do này hay lý do khác, tweet của bạn không thể được đăng, một thông báo như "Không thể tweet" thay thế tweet trong trường văn bản.
Tiếp theo, gõ tên người dùng vào trường văn bản thấp hơn và nhấp Timeline.Nếu mọi việc suôn sẻ, danh sách các tweet gần đây nhất của người dùng sẽ xuất hiện bên dưới nút Timeline. Bạn có thể cuộn danh sách để xem thêm tweets của người dùng.
