우선 오류 메세지 첨부드립니다.
12-26 03:14:08.817: I/CordovaLog(366): Changing log level to DEBUG(3)
12-26 03:14:08.817: D/CordovaActivity(366): CordovaActivity.onCreate()
12-26 03:14:09.457: D/AndroidRuntime(366): Shutting down VM
12-26 03:14:09.457: W/dalvikvm(366): threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-26 03:14:09.487: E/AndroidRuntime(366): FATAL EXCEPTION: main
12-26 03:14:09.487: E/AndroidRuntime(366): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wiki.wikitree/com.wiki.wikitree.MainActivity}: java.lang.NullPointerException
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.os.Looper.loop(Looper.java:123)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.ActivityThread.main(ActivityThread.java:3683)
12-26 03:14:09.487: E/AndroidRuntime(366): at java.lang.reflect.Method.invokeNative(Native Method)
12-26 03:14:09.487: E/AndroidRuntime(366): at java.lang.reflect.Method.invoke(Method.java:507)
12-26 03:14:09.487: E/AndroidRuntime(366): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-26 03:14:09.487: E/AndroidRuntime(366): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-26 03:14:09.487: E/AndroidRuntime(366): at dalvik.system.NativeStart.main(Native Method)
12-26 03:14:09.487: E/AndroidRuntime(366): Caused by: java.lang.NullPointerException
12-26 03:14:09.487: E/AndroidRuntime(366): at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:112)
12-26 03:14:09.487: E/AndroidRuntime(366): at org.json.JSONTokener.nextValue(JSONTokener.java:90)
12-26 03:14:09.487: E/AndroidRuntime(366): at org.json.JSONObject.<init>(JSONObject.java:154)
12-26 03:14:09.487: E/AndroidRuntime(366): at org.json.JSONObject.<init>(JSONObject.java:171)
12-26 03:14:09.487: E/AndroidRuntime(366): at com.wiki.wikitree.MainActivity.onCreate(MainActivity.java:36)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-26 03:14:09.487: E/AndroidRuntime(366): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
12-26 03:14:09.487: E/AndroidRuntime(366): ... 11 more
12-26 03:14:12.867: D/dalvikvm(366): GC_CONCURRENT freed 1160K, 57% free 2959K/6727K, external 1625K/2137K, paused 6ms+23ms
12-26 03:14:13.477: I/dalvikvm(366): Total arena pages for JIT: 11
12-26 03:14:17.567: I/Process(366): Sending signal. PID: 366 SIG: 9
그리고 json소스를 빼면 잘돌아갑니다..
해당 소스입니다.
String url = "file:///android_asset/www/index.html";
Intent intent = getIntent();
Bundle extra = intent.getExtras();
String jsonData = extra.getString("com.parse.Data");
try {
JSONObject json = new JSONObject(jsonData);
url = json.getString("url");
} catch (JSONException e) {
e.printStackTrace();
}
간략 설명드리고 전체소스첨부할꼐요..
폰갭으로 패킹하고 있구욧.
푸시는 PARSE.COM의 것을 사용하고 있습니다.
푸시에 담긴 데이타 추출할수있다고 하여 짠 부분입니다.
앱이 그냥 죽어버려 테스트를 할수가 없네요 ㅠㅠ
고수님들 도와주세요 ㅠㅠ
MainActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import com.parse.*;
import org.apache.cordova.*;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//parse.com을 이용한 푸시알림
Parse.initialize(this, "xxxxxxxx", "xxxxxxxx");
PushService.setDefaultPushCallback(this, MainActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
ParseAnalytics.trackAppOpened(getIntent());
PushService.subscribe(this, "", MainActivity.class);
String url = "file:///android_asset/www/index.html";
Intent intent = getIntent();
Bundle extra = intent.getExtras();
String jsonData = extra.getString("com.parse.Data");
try {
JSONObject json = new JSONObject(jsonData);
url = json.getString("url");
} catch (JSONException e) {
e.printStackTrace();
}
super.loadUrl(url);
}
}
AndroidMenifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxxx.xxxx"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="xxxx"
android:theme="@style/AppTheme" >
<activity
android:name="com.xxxx.xxxx.MainActivity"
android:label="xxxx" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
<action android:name="com.xxxx.xxxx.UPDATE_STATUS" />
</intent-filter>
</receiver>
</application>
</manifest>