2017-04-21 112 views
-2

我在androidd共享偏好在android系統

通過警告框中獲取客戶端的用戶名並將其存儲在一個變量「名」 這是類獲取的用戶名我已經做了迄今爲止

失敗
private void request_user_name() { 
       AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Enter name:"); 

      final EditText input_field = new EditText(this); 

      builder.setView(input_field); 
      builder.setPositiveButton("OK", new DialogInterface.OnClickListener() 


      { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 


        String name = input_field.getText().toString(); 



         SharedPreferences pref = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE); 

         SharedPreferences.Editor edit = pref.edit(); 

         edit.putString("name", name); 

         edit.commit(); 


        String name = pref.getString("name", ""); 
        name = name.trim(); 
        if (TextUtils.isEmpty(name)){ 
         request_user_name(); 
        } 

和我打電話與

if(name.isEmpty()) { 
    request_user_name(); 
} 

所以request_user_name類應用程序不會產生彈出警告每次我打開這個

但在仿真器安裝它的APK時崩潰

模擬器:關係6P API 25

機器人工作室2.3 logcat的:

04-21 19:46:12.921 7369 -7369 /? I/art:不遲到 - 啓用-Xcheck:jni(已啓用) 04-21 19:46:12.921 7369-7369 /? W/art:使用默認值的X86的意外CPU變體:x86_64 04-21 19:46:13.235 7369-7369/app.torune_sav W/System:ClassLoader引用未知路徑:/data/app/app.torune_sav-2/lib/x86_64 04-21 19:46:13.274 7369-7369/app.torune_sav D/FirebaseApp:com.google.firebase.auth.FirebaseAuth未鏈接。跳過初始化。 04-21 19:46:13.295 7369-7369/app.torune_sav D/FirebaseApp:com.google.firebase.crash.FirebaseCrash未關聯。跳過初始化。 04-21 19:46:13.344 7369-7369/app.torune_sav I/FA:應用測量正在啓動,版本:9452 04-21 19:46:13.344 7369-7369/app.torune_sav I/FA:要啓用調試日誌記錄運行:ADB殼setprop log.tag.FA VERBOSE 04-21 19:46:13.344 7369-7369/app.torune_sav d/FA:調試啓用日誌記錄 04-21 19:46:13.344 7369-7369/app.torune_sav d/FA:AppMeasurement單散列:75451222 04-21 19:46:13.378 7369-7369/app.torune_sav V/FA:集啓用 04-21 19:46:13.378 7369-7369/app.torune_sav V/FA:應用程序包,谷歌應用ID:app.torune_sav,1:718884139232:機器人:90e5088fff923640 04-21 19:46:13.415 7369-7369/app.torune_sav V/FA:註冊活動生命週期回調 04-21 19:46:13.417 7369-7369/app.torune_sav I/FirebaseInitProvider:FirebaseAp p初始化成功 04-21 19:46:13.420 7369-7369/app.torune_sav I/InstantRun:起始時刻運行服務器:是主進程 04-21 19:46:13.425 7369-7392/app.torune_sav V/FA :使用測量 服務04-21 19:46:13.435 7369-7392/app.torune_sav V/FA:將 連接到遠程服務04-21 19:46:13.504 7369-7369/app.torune_sav W/System:ClassLoader引用的未知路徑: /system/priv-app/PrebuiltGmsCore/lib/x86_64 04-21 19:46:13.505 7369-7369/app.torune_sav D/ApplicationLoaders:忽略Vulkan圖層 搜索路徑 /system/priv-app /PrebuiltGmsCore/lib/x86_64:/system/fake-libs64:/system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk!/lib/x86_64:/system/lib64:/vendor/lib64 爲命名空間0x7e277c41c0f0 04-21 19:46:13.513 7369-7369/app.torune_sav W/System:ClassLoader reference unknown path:04-21 19:46:13.513 7369-7369/app.torune_sav W/System: ClassLoader referenced未知路徑: /system/priv-app/PrebuiltGmsCore/lib/x86_64 04-21 19:46:13.514 7369-7369/app。torune_sav D/ApplicationLoaders:忽略Vulkan圖層 搜索路徑 /system/priv-app/PrebuiltGmsCore/lib/x86_64:/system/fake-libs64:/system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk!/lib/x86_64:/system/lib64:/ vendor/lib64 for namespace 0x7e277c41c160 04-21 19:46:13.523 7369-7369/app.torune_sav I/DynamiteModule:考慮本地模塊 com.google.android.gms.firebase_database:3和remote模塊 com.google.android.gms.firebase_database:五月4日至21日19:46:13.523 7369-7369/app.torune_sav I/DynamiteModule:所選遠程版本 com.google.android.gms.firebase_database的,版本> = 5 04-21 19:46:13.526 7369-7369/app.torune_sav W/System:ClassLoader 未知路徑: /data/user_de/0/com.google.android.gms/app_chimera/m/00000003/n/x86_64 04-21 19:46:13.583 7369-7369/app.torune_sav W/art:在Android 4.1之前, 方法android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList,android.graphics.PorterDuff $ Mode) 會錯誤地覆蓋package-私人方法 android.graphics.drawable.Drawable 04-21 19:46:13.597 7369-7399/app.torune_sav D/NetworkSecurityConfig:無網絡安全 配置指定,使用平臺默認04-21 19:46:13.608 7369-7369/app.torune_sav V/FA:onActivityCreated 04-21 19:46:13。 754 7369-7369/app.torune_sav W /系統:類加載器引用未知 路徑: /data/user_de/0/com.google.android.gms/app_chimera/m/00000002/n/x86_64 04-21 19: 46:13.764 7369-7369/app.torune_sav d/AndroidRuntime:關閉 向下VM

              --------- >beginning of crash 04-21 19:46:13.765 7369-7369/app.torune_sav >E/AndroidRuntime: FATAL EXCEPTION: main 
                  Process: >app.torune_sav, PID: 7369 
                  java.lang.RuntimeException: Unable to start activity 

ComponentInfo {app.torune_sav/app.real_time_chat.MainActivity}: 顯示java.lang.NullPointerException:嘗試調用虛擬方法 'null boolean java.lang.String.isEmpty()'null對象引用 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 在android.app.ActivityThread.-wrap12(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java .lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit。 java:776) 引起:java.lang.NullPointerException:試圖調用虛擬方法 'boolean java.lang.String.isEmpty()'null對象引用 at app.real_time_chat.MainActivity.onCreate(MainActivity.java:125) 在android.app.Activity.performCreate(Activity.java:6679) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) 在機器人.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app。(android.app.java:154) 在android.app上。 ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

任何人都可以找出代碼中的問題嗎?

+0

後堆棧跟蹤,請 –

+0

沒錯確保 啓動應用 $亞行外殼上午開始-n 「app.torune_sav/app.market_collectors.MainActivity」 -a android.intent.action.MAIN -c包含android.intent.category .LAUNCHER 客戶端尚未準備好。等待進程聯機 連接到設備上的進程6541 Pixel_API_25 [emulator-5554] 應用程序已終止。 – trevortyrin

+0

編輯你的帖子併發布整個stacktrace ..並編輯你的代碼couse現在它沒有任何意義,'String name'部分是在你使用'name'變量之後,所以你可能會發布它錯誤。 – miljon

回答

0

在調用.isEmpty()之前,您應該檢查您的String變量是否爲空。

if(name == null && name.isEmpty()) { 
    request_user_name(); 
} 

或者您應該使用默認值初始化它。

+0

其用戶名不是一個好主意,可以設置一個靜態默認值 – trevortyrin