问题标签 [knopflerfish]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1103 浏览

osgi - 将外部 jar 文件添加到 OSGI

我已经创建了一个 OSGi 包,我想向它添加两个外部 jar 文件mediasenseplatform.jartinyos.jar因此我将这一行添加到我的清单文件中:

但它不起作用,我在我的包 jar 文件中看不到这些文件。我怎么解决这个问题?

0 投票
2 回答
703 浏览

java - Knopflerfish,在捆绑包中使用外部库

我知道在 OSGI 包中使用外部库有两种方法。因为只有我的包需要 lib(例如 google-gson),所以我试图将它放在Bundle-ClassPath(manifest.mf)中。但是,每当我在 Knopflerfish 中运行捆绑包时,我都会得到Exception in thread "Thread-74" [stderr] java.lang.NoClassDefFoundError: com/google/gson/Gson.

由于我是 OSGI 的新手,所以我尝试按照说明从这里创建一个捆绑包,使用一个build.xml用于编译的地方,我还包含了 lib(不知道这是否正确)。所以这个库出现在三个不同的地方,项目类路径包类路径(manifest.mf)和build.xml

如果有人能给我提示如何使图书馆工作,我会很高兴。提前致谢!

0 投票
1 回答
1004 浏览

osgi - osgi import-package 无法到达内部类

我有一个捆绑包B1使用另一个捆绑包B2和捆绑包B2导出以下包:

  • 包裹a.b.c
  • 包裹a.b.d

这里的问题是B1我需要在包 abc 中使用一些内部类,可以说:a.b.c.d.e但在这种情况下,eclipse 会抛出以下错误:

但我已经B2导出/B1导入a.b.c包!为什么我需要再次插入内部类?

0 投票
1 回答
336 浏览

url - 如何处理 URL 协议 bundle://

我尝试在我的包中获取一个文件:

结果是 IllegalArgumentException,原因是“URI 方案不是“文件”。

这是合乎逻辑的,但是我应该如何使用这个 URL(bundle://28/image/logo.jpg)打开一个文件?

如果我使用常规的 ClassLoader,我会得到相同的结果。

编辑:

我的解决方案:

0 投票
2 回答
1751 浏览

java - OSGI 中的服务和组件

我对 OSGI 概念有一些愚蠢的怀疑,但需要澄清它们才能更好地理解概念。谁能告诉我 OSGI 服务和组件之间有什么区别。我所知道的是,Service 就像 java 中的一个接口文件,可以由不同的服务或组件使用。而组件就像服务的特定实现。

如果我错了,请让我知道,或者建议一些链接,我可以从中得到很好的东西。

0 投票
1 回答
2608 浏览

osgi - 哪个在 SCR 运行时被称为第一个激活函数或绑定函数

我对组件激活时调用哪个函数激活函数或绑定函数的顺序感到困惑。在我看来,激活函数函数将首先被调用,因为 Bind 函数用于绑定服务。但正如我们所知,所有目标服务都首先进入组件上下文,然后组件才会被激活。

请清除我的疑问。

0 投票
1 回答
148 浏览

declarative-services - 设置不兼容字符串的属性

我正在使用声明式服务并面临以下问题。我想用属性注册我的组件,比如使用

bc.registerService(MyClass.class.getName(), this, props);

但是,对于声明式服务,我必须提供定义这些属性的 XML 文件。现在,问题是我没有字符串兼容的值作为属性值(键是字符串)。属性不是任何类型的数字或字符串,而是“创建”方法返回的对象。这不是问题

bc.registerService(MyClass.class.getName(), this, props);

因为 props 可以包含条目。但是我如何使用声明式服务来管理这个?

BR Ewgenij

0 投票
1 回答
477 浏览

android - 在 Android 中嵌入 Knopflerfish 不起作用

我正在尝试将 Knopflerfish 框架嵌入到 android 应用程序中以动态加载和卸载包。我跟着这个教程

我做的第一步是从这个链接下载framework.jar,并将它添加到我的eclipse项目中的类路径中。

此外,下面是我的 onCreate() 方法:

请注意,我更改了一行代码,因为它显示了语法错误。

这是:

语法错误:The method newFramework(Map) in the type FrameworkFactory is not applicable for the arguments (Dictionary)

现在,根据@ldx 在这篇文章中的说法,“我为在 Knopflerfish 中提供更好的 Android/Dalvik 支持而提交的补丁已被合并,因此不再需要修补和重新编译 KF:”

因此我没有添加任何东西,假设我的代码已经足够了。

当我运行应用程序时。我立即得到:Unfortunately, Knopflerfish_Android has stopped在屏幕上。

有人可以帮忙吗?以下是 LogCat:

0 投票
1 回答
216 浏览

user-interface - GUI for Knopflerfish Config Admin

Does anybody know about a GUI for Config Admin of Knopflerfish? What I want to achieve is dynamic configuration management without editting configuration files manually. Is that possible at all? Here OSGI blog I read that

To set Config Admin data, take a look at the Felix Webconsole, Felix FileInstall, or the Knopflerfish environment. They all support a range of (G)UIs to create configuration records.

But I could not find any GUI for Knopflerfish :(

0 投票
1 回答
849 浏览

java - 在嵌入到 Android 中的 Knopflerfish 上启动 Bundle 不起作用

我将 Knopflerfish 框架嵌入到 android 应用程序中以动态启动和停止捆绑包。

我按照本教程,从这个链接下载了 framework.jar ,并将其添加到我的 Eclipse 项目中的类路径中。

此外,下面是 Activity 类,它启动框架并启动一个包:

正如我在之前的问题中所说的,根据这篇文章中的@ldx,“我为在 Knopflerfish 中提供更好的 Android/Dalvik 支持而提交的补丁已被合并,因此不再需要修补和重新编译 KF:”

因此我没有添加任何东西,假设我的代码已经足够了。

当我运行 android 应用程序时,我没有收到任何错误,而是在我的 LogCat 上收到肯定消息,说我的包已安装并启动。请参阅下面的日志(我忽略了前 2 行):

但是,我的捆绑包并没有真正开始。如果我的包真的启动了,那么包的 start 方法中的一条消息会显示在 LogCat 上。以下是我的捆绑启动方法:

请注意,我的包已被 dexified,但它并没有在我的应用程序中启动。我哪里做错了?

更新 1:我认为我应该将框架的开头与包的开头交换。教程的作者首先启动了bundle,但我想改变它,因为首先启动框架是有意义的,所以我更新的代码有以下内容:

现在,日志没有显示我的包像以前一样启动,而是告诉我执行环境不受支持。请参阅下面更新的 LogCat:

更新 2:我在下面@Neil 的回答之后从我的捆绑清单中删除了这一行,

但这导致了以下错误:

也许,我不应该交换启动框架和启动包的顺序。下面是我更新的 LogCat。