Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize
안녕하세요. 오레오 다이어리입니다.
하이브리드(cordova)앱을 개발하던 도중 위와 같은 오류가 발생하였습니다.
해결방법 : 오류내용을 자세히보고 어느 부분에서 오류가 발생하였는지 파악합니다.
저의 경우는 loadUrl(launchUrl)을 loadUrl("file:///android_asset/www/index.html"); 로 절대경로로 변경해서 해결하였습니다.
<!-- 상세한 오류내용 -->
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.globalbridge.tomyangel/com.globalbridge.tomyangel.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2702)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5951)
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:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void org.apache.cordova.CordovaPlugin.privateInitialize(java.lang.String, org.apache.cordova.CordovaInterface, org.apache.cordova.CordovaWebView, org.apache.cordova.CordovaPreferences)' on a null object reference
at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:171)
at org.apache.cordova.PluginManager.startupPlugins(PluginManager.java:97)
at org.apache.cordova.PluginManager.init(PluginManager.java:86)
at org.apache.cordova.CordovaWebViewImpl.init(CordovaWebViewImpl.java:115)
at org.apache.cordova.CordovaActivity.init(CordovaActivity.java:149)
at org.apache.cordova.CordovaActivity.loadUrl(CordovaActivity.java:224)
at com.globalbridge.tomyangel.MainActivity.onCreate(MainActivity.java:36) <!-- 주의
at android.app.Activity.performCreate(Activity.java:6289)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2655)
... 10 more
1. 주의해서 보아야할 오류!
at com.globalbridge.tomyangel.MainActivity.onCreate(MainActivity.java:36)
로그를 자세히 보면 MainActivity.java의 36번 줄에 문제가 있다고 하네요.
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
loadUrl(launchUrl) <-- 오류가 발생한 위치!!
}
}
2. 해결방법 :
폰갭(코르도바)로 개발하셨나요? 그렇다면
loadUrl(launchUrl) --> loadUrl("file:///android_asset/www/index.html"); 로 절대경로로 변경해서 시작해주세요 ^ ^
3. 고친 결과
public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
loadUrl("file:///android_asset/www/index.html"); <-- index.html
}
}
구글에서 해당 내용이 검색이 안되서 한참 해맸었네요 ㅎㅎㅠ 도움이 되길 바랍니다.
감사합니다. 한 번씩 공감 눌러주세요~
질문 사항이 있다면 댓글 남겨주세요 ^ ^