kanzi 3.5 使用eclipse编译的apk无法启动的解决办法

kanzi 3.5 使用eclipse编译的apk无法启动的解决办法

我们知道eclipse编译的apk,默认会对kzb格式的文件进行压缩的,kanzi 3.5开始为了加快kzb的读取速度,使用的是非压缩的文件读写的方法,无法读取压缩过的kzb,所以默认编译的apk会无法启动,提示无法读取kzb~

最好的解决办法是配置eclipse编译apk不压缩kzb,但是没找到办法

另一个解决办法就是指定kzb从sdcard读取,不把kzb打包到apk里

代码如下

   virtual void onConfigure(ApplicationProperties& configuration) KZ_OVERRIDE
    {
 ...
#ifdef ANDROID
        kzsFileBaseSetResourceDirectory("/sdcard/DCIM/Kanzi/"); 
#endif
    }

virtual void onProjectLoaded() KZ_OVERRIDE
    {
        ...
        //this works on android, proving that the path is correct
        KzcImage* image = NULL;
        kzcImageLoadFile(getDomain()->getMemoryManager(), "/sdcard/DCIM/Kanzi/3D-Car-Models-7.jpg", &image);
        kzsLogFormat(KZS_LOG_LEVEL_INFO, ("image: %p", image));

        //this is expected to work, if the above works.
        TextureSharedPtr texture = getResourceManager()->tryAcquireResource<Texture>("file://./3D-Car-Models-7.jpg");

    }

最好的办法还是推荐直接使用kanzi的scons来编译~


如果是android studio 的话,直接添加如下配置再build.gradle 里添加

build.gradle里加入如下内容

aaptOptions {
    noCompress 'cfg', 'kzb', 'txt'
}

    • Related Articles

    • kanzi的工程使用eclipse 编译的apk启动速度比scons编译的慢很多

      使用eclipse编译的apk中的assets下的kzb是被压缩的,启动的时候需要解压缩,但是scons编译的apk中的kzb是没有压缩的,所有启动的时间会快。  scons编译的配置就在build.xml 中, 在Examples\Gestures\Application\configs\platforms\android 下的build.xml 打开可以看到
    • android 编译apk ant 找不到rt.jar

      kanzi的android程序中用到了如下的代码 import java.util.*;//工具类一般都在util里面 import java.util.concurrent.ThreadLocalRandom; import com.rightware.kanzi.*; public class BSplineArea extends KanziActivity {     private static final String TAG = "BSplineArea"; public void ...
    • eclipse打开kanzi工程编译冲突问题

      如果我们在eclipse里面把kanziengine.jar包拷贝到工程中,eclispe可以正常编译, 但是scons会引发dex重复定义,这是因为scons的配置文件会解压kanziengine.jar包, 在我们之前拷贝的过程以及解压一次了,这样会引发冲突, 这时候我们把<unzip src="${engine.dir}/configs/platforms/android/kanzi_engine.jar" dest="${out.dir}/classes" />注释掉
    • 使用scons -j4 开启多线程编译apk会导致libkanzi.so 无法被打包进apk

      kanzi 3.2.3lts , kanzi 3.4 都存在这样的问题 新建一个kanzi studio project with c++ application.  进入到android工程目录下,使用scons -j4 编译, 第一次编译libkanzi.so 还没有编译出来,会发现kanzi是先编译apk,然后再link libkanzi.so  所以第一次编译出来的apk没有libkanzi.so 比较小,安装运行时提示如下错误 Process: ...
    • Kanzi 是否可以独立开展 logic 功能设计?是否跟 matlab/smulink、 C++ 有接口?

      Kanzi 目前主要提供 HMI 解决方案,帮助用户快速实现高质量的产品原型,拥有 C++接口,支持插件扩展,用户可以构建支持 matlab/smulink 这样的第三方系统,也可以使用插件来支持导入相关模块。 我们正在开发中的 kanzi logic 就是在 Kanzi 设计工具的基础上提供快速logic 设计,轻松实现 logic 和 HMI 的对接。目前已发布,并在不断完善。