私のデバイスで古いアプリを稼働させるために3日間の作業を済ませた!しかし、私のコンピュータからコマンドが来たときだけ。携帯電話から起動するとアプリがクラッシュするが、パソコンから起動したときにうまく動作する
私は説明します。 Android Studioから携帯電話でアプリを起動すると、うまく起動します。これは素晴らしいことです。しかし私が自分の電話機から直接起動すると、CatlogにStringがnullであることがわかります。私はこれを引き起こす可能性が理解していない..それは、アプリケーションが私のコンピュータから起動されているが、電話からではなく、起動時に正常に動作します...
助けてください!
編集1:追加のAndroidManifest.xml活動
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".ManageAccountActivity"/>
<activity android:name=".RegionListActivity"/>
<activity android:name=".ClubListActivity"/>
<activity android:name=".SearchActivity"/>
<activity android:name=".TeetimesListActivity"/>
<activity android:name=".ConfirmationActivity"/>
<activity android:name=".TermsAndConditionsActivity"/>
<activity android:name=".TabletSearchActivity"/>
<activity android:name=".TabletConfirmationActivity"/>
<activity android:name=".PreferencesActivity"/>
編集2:エラーログ
01-08 16:08:47.194 26704-26704/ca.gggolf.aminutegolf E/ACRA: ACRA caught a RuntimeException for ca.gggolf.aminutegolf
java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.gggolf.aminutegolf/ca.gggolf.aminutegolf.LoginActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.access$800(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5343)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
at ca.gggolf.aminutegolf.LoginActivity.checkForNewBooking(LoginActivity.java:676)
at ca.gggolf.aminutegolf.LoginActivity.onCreate(LoginActivity.java:112)
at android.app.Activity.performCreate(Activity.java:6010)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.access$800(ActivityThread.java:155)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5343)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)
編集3:エラーを含むコードの一部を追加
private void checkForNewBooking() {
Bundle extras = getIntent().getExtras();
if (extras != null) {
final String numConfirmation = extras.getString("NEWLY_BOOKED");
final String date[] = extras.getString("BOOKING_DATE").split("-"); //line 676
final String time[] = extras.getString("BOOKING_TIME").split(":");
final String club = extras.getString("BOOKING_CLUB");
final int hole = Integer.parseInt(extras.getString("BOOKING_HOLE"));
編集4:その他のコード。 onCreate()メソッドを次に示します。メソッドcheckForNewBooking()の呼び出しはそこから来ます。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Log.d(TAG, "onCreate()");
mController = new ActivityController(this);
// Setting server mode
((Globals) getApplication()).setServerInformation(SharedPrefManager.getServer(this));
// Hide auto-triggered keyboard
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
if (SharedPrefManager.isFirstRun(LoginActivity.this)) {
SharedPrefManager.setFirstTimePrefs(LoginActivity.this, Utility.retreiveLanguage());
Log.d(TAG, "First run triggered.");
}
Bundle mBundle = getIntent().getExtras();
if (mBundle != null) {
if (mBundle.getBoolean("PROCESS_KILLED")) {
Toast.makeText(LoginActivity.this, R.string.ui_error_killedprocess, Toast.LENGTH_LONG).show();
} else {
checkForNewBooking();
}
}
initializeUI();
WrappedLogger.setProvider(new LoggingProvider());
WrappedLogger.setMemoryLog(false);
IPAddressInformation.getInstance().getIPAddress();
}
少なくとも、アプリケーションを起動するために使用しているアクティビティ宣言と実行コンフィギュレーションを明記してください –
エミュレータとデバイスは同じオペレーティングシステムを使用していますか? – AdamMc331
実行コンフィギュレーションはできるだけ早く実行できます。デプロイと起動は、インストールフラグも起動フラグもなく、デフォルトに設定されています。エミュレータの場合、私はコンピュータから何も実行していない、私のデバイス上で直接起動します。 – dequec64