gpt4 book ai didi

android - Cordova 应用程序上的 NullPointerException

转载 作者:搜寻专家 更新时间:2023-11-01 07:56:38 25 4
gpt4 key购买 nike

当我在 android 4.3+ 中启动我的 cordova 应用程序时,我没有遇到任何问题。

但是当我在 android 4.1.2 上启动我的应用程序时,我有一个 nullpointerexception,并且在对应用程序执行第一次操作后,应用程序退出。

最后一次调用是一个回调函数:

var callback = function(){
$location.path('/profils');
};

当启动“/profils”时,调用 getProfils 服务方法:

service.factory('HttpService', ['$http', '$location',
function($http, $location){
return {
getProfils: function(){
console.log('-> Get Profils');
uiUtils.showLoader();
return $http.get(URL).
then(
function success(response) {
uiUtils.hideLoader();
return response.data.Result;
},
function error(reason) {
uiUtils.hideLoader();
return false;
}
);
},
...

您可以在下面看到堆栈跟踪:

I/Web Console( 8801): -> Get Profils:14

D/FirewallPolicy( 2128): getURLFilterEnabled(true)

D/FirewallPolicy( 2128): isUrlBlocked - Policy disabled

D/STATUSBAR-NetworkController( 2265): refreshSignalCluster: data=0 bt=false

I/ClipboardServiceEx( 2128): Send intent for dismiss clipboard dialog inside hideCurrentInputLocked() !

E/dalvikvm( 8801): Class lookup Landroid/webkit/WebResourceResponse; attempted with exception pending

W/dalvikvm( 8801): Pending exception is:

I/dalvikvm( 8801): java.lang.NullPointerException:

I/dalvikvm( 8801): at android.content.res.AssetManager.openAsset(Native Method)

I/dalvikvm( 8801): at android.content.res.AssetManager.open(AssetManager.java:315)

I/dalvikvm( 8801): at android.webkit.BrowserFrame.inputStreamForAndroidResource(BrowserFrame.java:849)

I/dalvikvm( 8801): at android.webkit.BrowserFrame.shouldInterceptRequest(BrowserFrame.java:939)

I/dalvikvm( 8801): at android.webkit.JWebCoreJavaBridge.nativeServiceFuncPtrQueue(Native Method)

I/dalvikvm( 8801): at android.webkit.JWebCoreJavaBridge.handleMessage(JWebCoreJavaBridge.java:113)

I/dalvikvm( 8801): at android.os.Handler.dispatchMessage(Handler.java:99)

I/dalvikvm( 8801): at android.os.Looper.loop(Looper.java:137)

I/dalvikvm( 8801): at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:1067)

I/dalvikvm( 8801): at java.lang.Thread.run(Thread.java:856)

I/dalvikvm( 8801): DALVIK THREADS:

I/dalvikvm( 8801): (mutexes: tll=0 tsl=0 tscl=0 ghl=0)

I/dalvikvm( 8801):

I/dalvikvm( 8801): "main" prio=5 tid=1 NATIVE

I/dalvikvm( 8801): | group="main" sCount=0 dsCount=0 obj=0x40eb2508 self=0x40e01b08

I/dalvikvm( 8801): | sysTid=8801 nice=0 sched=0/0 cgrp=apps handle=1075203888

I/dalvikvm( 8801): | schedstat=( 645744814 318546031 1496 ) utm=45 stm=19 core=1

I/dalvikvm( 8801): #00 pc 0000da70 /system/lib/libc.so (epoll_wait+12)

I/dalvikvm( 8801): #01 pc 00014899 /system/lib/libutils.so (android::Looper::pollInner(int)+96)

I/dalvikvm( 8801): #02 pc 00014b01 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104)

I/dalvikvm( 8801): #03 pc 00063553 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)

I/dalvikvm( 8801): #04 pc 0001df30 /system/lib/libdvm.so (dvmPlatformInvoke+112)

I/dalvikvm( 8801): #05 pc 0004d183 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)

I/dalvikvm( 8801): #06 pc 00027360 /system/lib/libdvm.so

I/dalvikvm( 8801): #07 pc 0002bc68 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)

I/dalvikvm( 8801): #08 pc 0005fbb7 /system/lib/libdvm.so (dvmInvokeMethod(Object*, Method const*, ArrayObject*, ArrayObject*, ClassObject*, bool)+374)

I/dalvikvm( 8801): #09 pc 00067165 /system/lib/libdvm.so

I/dalvikvm( 8801): #10 pc 00027360 /system/lib/libdvm.so

I/dalvikvm( 8801): #11 pc 0002bc68 /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+180)

I/dalvikvm( 8801): #12 pc 0005f8f1 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+272)

I/dalvikvm( 8801): #13 pc 00049773 /system/lib/libdvm.so

I/dalvikvm( 8801): #14 pc 0004c4a1 /system/lib/libandroid_runtime.so

I/dalvikvm( 8801): #15 pc 0004d663 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+390)

I/dalvikvm( 8801): #16 pc 00000dcf /system/bin/app_process

I/dalvikvm( 8801): #17 pc 00017123 /system/lib/libc.so (__libc_init+38)

I/dalvikvm( 8801): #18 pc 00000b34 /system/bin/app_process

I/dalvikvm( 8801): at android.os.MessageQueue.nativePollOnce(Native Method)

I/dalvikvm( 8801): at android.os.MessageQueue.next(MessageQueue.java:125)

I/dalvikvm( 8801): at android.os.Looper.loop(Looper.java:124)

I/dalvikvm( 8801): at android.app.ActivityThread.main(ActivityThread.java:4921)

I/dalvikvm( 8801): at java.lang.reflect.Method.invokeNative(Native Method)

I/dalvikvm( 8801): at java.lang.reflect.Method.invoke(Method.java:511)

I/dalvikvm( 8801): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)

I/dalvikvm( 8801): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)

I/dalvikvm( 8801): at dalvik.system.NativeStart.main(Native Method)

I/dalvikvm( 8801):

有人知道如何解决吗?

如果需要,我有更多的日志,但我认为这已经足够了......但也许还不够,因为我找不到问题的根源。

更新:

清理所有代码后,我找到了确切的错误源:

<img    src="{{profil.selection ? profil.template.selectedPicture : profil.template.picture}}"/>

目前,不知道错误是来自三元还是 urls...

最佳答案

错误确实不明确,但我发现了问题:

我在我的 cordova 应用程序中使用 AngularJs 并尝试显示下一行:

<img    src="{{profil.selection ? profil.template.selectedPicture : profil.template.picture}}"/>

但是:

"Using Angular markup like {{hash}} in a src attribute doesn't work right"

来自 AngularJS 文档:https://docs.angularjs.org/api/ng/directive/ngSrc

因此,在我的浏览器中,在我的测试和开发过程中我没有遇到任何问题,但是当我使用 cordova 构建它时,我的应用程序崩溃并退出并出现上述错误。

我认为与@JoffreyMaheo 评论链接是一个错误:https://issues.apache.org/jira/browse/CB-2391 ,因为 {{hash}} 没有被解释,图像 url 无法被识别并产生空指针异常。

要更正它:我们必须使用“ng-src”,一切都可以使用它:

<img    ng-src="{{profil.selection ? profil.template.selectedPicture : profil.template.picture}}"/>

我认为当 URL 包含特殊字符时,这个问题会出现在 Cordova 中。

因此,请注意 URL 中的特殊字符!

关于android - Cordova 应用程序上的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27102342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com