2012-07-19 27 views
5

Trong khi chạy dự án trên trình giả lập Android, tôi phải đối mặt với ngoại lệ là java.lang.NullPointerException tại getApplicationContext.Xin vui lòng giúp tôi giải quyết vấn đề này.Java.lang.NullPointerException tại getapplicationContext() trong khi khởi tạo bộ chuyển đổi

Lỗi

07-19 15:08:07.811: D/AndroidRuntime(366): Shutting down VM 
07-19 15:08:07.811: W/dalvikvm(366): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
07-19 15:08:07.841: E/AndroidRuntime(366): FATAL EXCEPTION: main 
07-19 15:08:07.841: E/AndroidRuntime(366): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.TfsMutualFund/org.TfsMutualFund.loading}: java.lang.NullPointerException 
07-19 15:08:07.841: E/AndroidRuntime(366): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585) 
07-19 15:08:07.841: E/AndroidRuntime(366): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 

07-19 15:08:07.841: E/AndroidRuntime(366): Caused by: java.lang.NullPointerException 
07-19 15:08:07.841: E/AndroidRuntime(366): at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:100) 
07-19 15:08:07.841: E/AndroidRuntime(366): at org.TfsMutualFund.loading.<init>(loading.java:23) 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="org.TfsMutualFund"> 
<uses-sdk android:targetSdkVersion="8" /> 

<application android:name=".globalAdapter" android:icon="@drawable/icon" android:label="@string/app_name"> 

    <activity android:name=".loading" 
       android:label="@string/app_name" 
       android:theme="@android:style/Theme.NoTitleBar" 
       android:configChanges="orientation|keyboard|keyboardHidden"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".TFSManinActivity" 
    android:configChanges="orientation|keyboard|keyboardHidden"/> 
</application> 

loading.java

package org.TfsMutualFund; 

public class loading extends Activity{ 
private static ArrayAdapter<String> adapter; 
private globalAdapter adpt = ((globalAdapter)getApplicationContext()); 
private String ServicePath = adpt.getServicePath(); 
private String ServiceName = adpt.getServiceName(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.loading); 
if(isOnline()) 
    new AsyncLoad().execute(); 
else 
+0

Bạn chỉ có thể sử dụng "this" thay vì gọi getApplicationContext() trong hoạt động tải của bạn – pixelscreen

+0

đừng đăng mọi thứ.just đăng khối mã nơi lỗi nhận được !!! –

+0

Và cũng có thể thực hiện các bước khởi tạo đó trong onCreate() và không phải trước đó! – pixelscreen

Trả lời

11

Không khởi tạo trước OnCreate(), bạn không thể tải ngữ cảnh ở đó, thực hiện trong onCreate().

private globalAdapter adpt; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.loading); 
    adpt = ((globalAdapter)getApplicationContext()); 
    ... 
} 
+1

Bất kỳ lý do gì để bỏ phiếu xuống? –

+0

Cảm ơn Lalit. Nhưng sau khi khởi tạo nó trong phương thức OnCreate nó cho thấy lỗi tương tự. – Mahavir

+0

bạn đã xóa 'private globalAdapter adpt = ((globalAdapter) getApplicationContext());' là toàn cầu? –

2

1. Dont khởi tạo dưới đây trước khi onCreate, chúng ta hãy quan điểm lấy id của họ đầu tiên

private globalAdapter adpt = ((globalAdapter)getApplicationContext()); 
private String ServicePath = adpt.getServicePath(); 
private String ServiceName = adpt.getServiceName(); 

2. chỉ cần khai báo họ ....

private globalAdapter adpt; 
private String ServicePath; 
private String ServiceName; 

3. Bởi vì khi hoạt động không được hình thành, bạn có thể lấy Con văn bản cho hoạt động đó, vì bạn đang sử dụng getApplicationContext() để tải ngữ cảnh Hoạt động hiện tại.

+0

Cảm ơn Xitij, Nhưng ngay cả sau khi khởi tạo nó trong Oncreate() phương pháp nó cho thấy cùng một lỗi .. – Mahavir

Các vấn đề liên quan