android 应用程序中的 Geckoview 因错误“java.lang.Exception:加载 sqlite 库时出错”而崩溃
Posted
技术标签:
【中文标题】android 应用程序中的 Geckoview 因错误“java.lang.Exception:加载 sqlite 库时出错”而崩溃【英文标题】:Geckoview in android app crashing with error "java.lang.Exception: Error loading sqlite libraries" 【发布时间】:2021-04-29 02:18:09 【问题描述】:我已经在这里和其他地方阅读了很多关于 geckoview 的文章和操作指南,但我没有找到任何解决我的问题的方法。我在我的 android 应用程序中集成了 geckoview(作为 webview 的替代品)。我按照howtos中的说明做了所有事情,但此刻,活动想要显示,应用程序崩溃,错误“java.lang.Exception:加载sqlite库时出错”。有人能帮帮我吗?
build.gradle(模块)
ext
geckoviewChannel = "nightly"
geckoviewVersion = "86.0.20210124091450"
repositories
maven
url "https://maven.mozilla.org/maven2/"
活动 xml
<org.mozilla.geckoview.GeckoView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/geckoview"
android:layout_
android:layout_ />
活动顶部
import org.mozilla.geckoview.GeckoRuntime;
import org.mozilla.geckoview.GeckoSession;
import org.mozilla.geckoview.GeckoView;
创建活动
boolean doGecko=true;
myGeckoView = findViewById(R.id.geckoview);
if (doGecko)
Log.d(logTag, "starting GeckoView: "+myGeckoView);
try
if (myGeckoSession==null)
Log.d(logTag, "myGeckoSession = new GeckoSession()");
myGeckoSession = new GeckoSession();
Log.d(logTag, "GeckoSession: "+myGeckoSession);
if (myGeckoRuntime==null )
myGeckoRuntime = GeckoRuntime.create(this);
Log.d(logTag, "created GeckoRuntime: "+myGeckoRuntime );
else
myGeckoRuntime = GeckoRuntime.getDefault(this);
Log.d(logTag, "getting default GeckoRuntime: "+myGeckoRuntime );
Log.d(logTag, "myGeckoSession.open(myGeckoRuntime)");
myGeckoSession.open(myGeckoRuntime);
Log.d(logTag, "myGeckoview.setSession(myGeckoSession)");
myGeckoView.setSession(myGeckoSession);
Log.d(logTag, "loading url");
myGeckoSession.loadUri("http://www.google.de");
catch (Exception e)
Log.d(logTag, "error "+e.toString() );
else
myGeckoView.setVisibility(View.INVISIBLE);
堆栈跟踪
2021-01-25 11:14:18.011 4815-4883/com.test.de.browseme E/GeckoLibLoad: Load sqlite start
2021-01-25 11:14:18.011 4815-4883/com.test.de.browseme E/GeckoLibLoad: Couldn't get a handle to libnss3!
2021-01-25 11:14:18.011 4815-4883/com.test.de.browseme E/GeckoLibLoad: Throw
2021-01-25 11:14:18.011 4815-4883/com.test.de.browseme E/GeckoLibLoad: Load sqlite done
2021-01-25 11:14:18.013 4815-4883/com.test.de.browseme E/AndroidRuntime: FATAL EXCEPTION: Gecko
Process: com.test.de.browseme, PID: 4815
java.lang.Exception: Error loading sqlite libraries
at org.mozilla.gecko.mozglue.GeckoLoader.loadSQLiteLibsNative(Native Method)
at org.mozilla.gecko.mozglue.GeckoLoader.loadSQLiteLibs(GeckoLoader.java:204)
at org.mozilla.gecko.GeckoThread.loadGeckoLibs(GeckoThread.java:247)
at org.mozilla.gecko.GeckoThread.initGeckoEnvironment(GeckoThread.java:267)
at org.mozilla.gecko.GeckoThread.run(GeckoThread.java:430)
【问题讨论】:
the app crashes, without any information.
这能回答你的问题吗? Unfortunately MyApp has stopped. How can I solve this?
谢谢伙计,向前迈了一步 :) 不,我在“java.lang.Exception:加载 sqlite 库时出错”。我正在看。
我不想变得粗鲁,对此感到抱歉。我只是不够聪明,无法理解您的帮助,但我是在阅读了页面的第一个字母之后,这就是为什么我写了“哦,不,好吧,我读了这个”。这意味着“对不起,伙计,现在我明白了,你想对我说什么,谢谢!”。
不用担心 :) 堆栈溢出有时会声名狼藉,人们在这里很粗鲁(这可能是真的),但我从来没有任何粗鲁的意图,所以我的帖子旨在提供帮助。您应该使用edit 获取您的堆栈跟踪并将其添加到您的问题中,我对这项技术没有经验,所以我无法为您提供更多帮助
【参考方案1】:
这看起来像第 116 期 https://github.com/mozilla/geckoview/issues/116
转到您的清单并将其添加到应用程序区域下:
android:extractNativeLibs="true"
【讨论】:
以上是关于android 应用程序中的 Geckoview 因错误“java.lang.Exception:加载 sqlite 库时出错”而崩溃的主要内容,如果未能解决你的问题,请参考以下文章
关于 Mozilla GeckoView 的 Android 问题
如何在 Android 上将 Javascript 注入 GeckoView