精华内容
下载资源
问答
  • cannot use throw with exceptions disabled

    千次阅读 2020-06-05 16:42:49
    这是由于 DragonBonesCPP 库使用了 C++ 标准异常,而 Android NDK 编译器默认不支持 C++ 异常控制导致。 但是,从Android NDK r5 版本开始,NDK 就开始支持 C++ 异常控制了,我的版本是 r9d ,为什么还会出现这个...

     

     

    这是由于 DragonBonesCPP 库使用了 C++ 标准异常,而 Android NDK 编译器默认不支持 C++ 异常控制导致。

    但是,从Android NDK r5 版本开始,NDK 就开始支持 C++ 异常控制了,我的版本是 r9d ,为什么还会出现这个错误呢?

    原来,NDK 编译器的 C++ 异常控制特性支持默认是关闭的。要打开它,可以这样做:

    编辑 Android.mk 文件,加入下面的代码:

    LOCAL_CPP_FEATURES += exceptions
    

    或者:

    LOCAL_CPPFLAGS += -fexceptions
    

    这样可以对当前项目开启 C++ 异常控制编译支持。

    如果想偷懒,也可以编辑 Application.mk 文件,加入下面的代码:

    APP_CPPFLAGS += -fexceptions
    

    这样,所有模块的 C++ 异常控制编译支持都会被打开。

    上面的两个 mk 文件位于 proj.android/jni 文件夹中。

    anrdoid开发:

    展开全文
  • 写在前面:最近研究nodejs及其web框架express,对app.use和app.get没理解清,以致踩了坑浪费不少时间,我根据自己实践及总结出此博客,若有错误还请大家多多指教。 app对象 app对象一般用来表示Express程序。通过...

    写在前面:最近研究nodejs及其web框架express,对app.use和app.get没理解清,以致踩了坑浪费不少时间,我根据自己实践及总结出此博客,若有错误还请大家多多指教。

    app对象
    app对象一般用来表示Express程序。通过调用Express模块导出的顶层的express()方法来创建它:

    var express = require('express');
    var app = express();
    app.get('/', function(req, res) {
        res.send('hello world!');
    });
    app.listen(3000);

    app对象具有以下的方法:

    • 路由HTTP请求;具体可以看app.METHOD和app.param这两个例子。
    • 配置中间件;具体请看app.route。
    • 渲染HTML视图;具体请看app.render。
    • 注册模板引擎;具体请看app.engine。

    结论
    先说我发现的结论:

    app.use(path,callback)中的callback既可以是router对象又可以是函数
    app.get(path,callback)中的callback只能是函数

    结论说完,让我们先看个栗子
    例子

    var express = require('express');
    var app = express();
    var index = require('./routes/index');
    1、
    app.use('/test1',function(req,res,next){
        res.send('hello test1');
            res.render('index');  //注意这里和4对比,4 是直接把路由作为第二个参数,这里是放在回调函数里,效果一样
    });
    2、
    app.get('/test2',function(req,res,next){
        res.send('hello test2');
    });
    3、app.get('/test3',index);
    4、app.use('/test4',index);

    index是一个路由对象,结果,例1、2、4结果都能正确显示,而例3却报404。index.js很简单,如下:

    var express = require('express');
    var router = express.Router();
    router.get('/', function(req, res, next) {
      res.send('hello world!');
    });
    module.exports = router;

    两者关系
    这说明,给app.get(app.post、app.put同理)直接赋个路由对象是不行的,其实,可以将app.get()看作app.use的特定请求(get)的简要写法。即:

    var express = require('express');
    var app = express();
    app.get('/hello',function(req,res,next){
        res.send('hello test2');
    });

    等同于:

    var express = require('express');
    var app = express();
    var router = express.Router();
    router.get('/', function(req, res, next) {  //归根到底还是使用了router的方法
      res.send('hello world!');
    });
    app.use('/hello',router);

    什么时用
    那么,什么时用app.use,什么时用app.get呢?

    路由规则是app.use(path,router)定义的,router代表一个由express.Router()创建的对象,在路由对象中可定义多个路由规则。可是如果我们的路由只有一条规则时,可直接接一个回调作为简写,也可直接使用app.get或app.post方法。即
    当一个路径有多个匹配规则时,使用app.use,否则使用相应的app.method(get、post)
    对express路由的解析可参考Express.js 4.0 的路由(Router)功能用法教學请添加链接描述,觉得比官网说的清楚。
    app.use内部其实调用了router.use

    router.use
    router.use([path], [function, ...] function)
    给可选的path参数指定的路径挂载给定的中间件方法,未指定path参数,默认值为/。 这个方法类似于app.use()。一个简单的例子和用例在下面描述。查阅app.use()获得更多的信息。
    中间件就像一个水暖管道,请求在你定义的第一个中间件处开始,顺着中间件堆栈一路往下,如果路径匹配则处理这个请求。

    var express = require('express');
    var app = express();
    var router = express.Router();
    // 这个路由器请求的简单记录器
    // all requests to this router will first hit this middleware,没给path,所有请求都会先执行这个中间件
    /// 這個範例是一個簡單的 middleware,在每一個請求被處理之前都會執行的 middleware ,这里是會在每一個請求被處理之前,輸出一行紀錄訊息到終端機上:
    router.use(function(req, res, next) {
        console.log('%s %s %s', req.method, req.url, req.path);
        next();  //必须有next()方法,
    })
    // this will only be invoked if the path starts with /bar form the mount ponit
    router.use('/bar', function(req, res, next) {
        // ... maybe some additional /bar logging ...
        next();
    })
    // always be invoked
    router.use(function(req, res, next) {
        res.send('hello world');
    })
    app.use('/foo', router);
    app.listen(3000);

    router.post app.post app.use
    要使用router.post,首先要:
    var router = express.Router();
    然后使用
    router.post,
    这个也是匹配对应的路由,执行回调方法
    最终需要使用app.use('/',router)来使路由真正发挥作用
    如果router的路径和app.js路径不一样,还要通过module.exports = router导出router,
    在app.j里面,app.use('/',require('./routers/main'));,后面的router要写上相对地址;
    当然了,在同一个js里,就直接app.use('/',router)就行了。

    可以直接使用app.post app.use来处理路由,也可以使用router.post

    express.Router
    使用express.Router该类创建模块化,可安装的路由处理程序。一个Router实例是一个完整的中间件和路由系统; 因此,它通常被称为“迷你app”。

    以下示例将路由器创建为模块,在其中加载中间件功能,定义一些路由,并将路由器模块安装在主应用程序中的路径上。

    创建birds.jsapp目录中指定的路由器文件,其中包含以下内容:

    var express = require('express')
    var router = express.Router()
    
    // middleware that is specific to this router
    router.use(function timeLog (req, res, next) {
      console.log('Time: ', Date.now())
      next()
    })
    // define the home page route
    router.get('/', function (req, res) {
      res.send('Birds home page')
    })
    // define the about route
    router.get('/about', function (req, res) {
      res.send('About birds')
    })
    
    module.exports = router
    //然后,在应用程序中加载路由器模块:
    var birds = require('./birds')
    // ...
    app.use('/birds', birds)

    该应用程序现在能够处理请求/birds和/birds/about,以及调用timeLog中间件功能是特定的路线。

    next()
    注意:app.use注册的中间件,如果path参数为空,则默认为"/",而path为"/"的中间件默认匹配所有的请求。

    我们在定义express中间件函数的时候都会将第三个参数定义为next,这个next就是我们今天的主角,next函数主要负责将控制权交给下一个中间件,如果当前中间件没有终结请求,并且next没有被调用,那么请求将被挂起,后边定义的中间件将得不到被执行的机会。
    next函数主要是用来确保所有注册的中间件被一个接一个的执行,那么我们就应该在所有的中间件中调用next函数。

    next()方法出现在express框架中的中间件部分。中间件的行为类似于Java中的filter(过滤器)的工作原理,进入具体的业务处理之前,先让中间件进行处理,这样做可以封装底层处理的细节,可以让开发者更加专注于具体的业务上,提高了开发效率。

    由于node异步的原因,我们需要提供一种机制,当当前中间件工作完成之后,通知下一个中间件执行。因此一个基本的中间件应该是下面的形式:

    var middleware = function(req,res,next){
        next();
    }

    如果代码非常简单,完全可以 app.get('/',....),如果路由比较复杂,使用 express.Router() 更合适。 

    转载至:http://blog.csdn.net/wthfeng/article/details/53366169

    展开全文
  • PHP别名引用错误 The use statement with non-compound name has no

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

                   
    别名概述

    PHP5.3+支持命名空间:namespace,命名空间的一个重要功能是可以使用别名(alias)来引用一个符合规则的名字。

    命名空间支持3中形式的别名引用(或称之为引入)方式:类(class)别名,接口(interface)别名和命名空间(namespace)名字别名。

    PHP5.6+还支持函数别名和常量别名。

    (注:php.net 网站上关于别名这一段的中文描述有歧义和错误,更正如上)

    具体语法格式

    use xxx\xxx\xxx as xx;

    所以use语句实际上是一种别名引用,而不是通常的import。那么use后面出现的名称就得是符合规则的别名。

    错误及原因

    现在再来看类似文章标题中的错误信息:

    “The use statement with non-compound name … has no effect”

    我们就能明白这个错误信息指的是use语句中出现的名称不是复合名称,不符合规则,所以“没有用”。

    检查你的语句是不是直接在use后面跟上了类或接口的名字,比如

    use News;

    修改为:

    use YourNameSpace\News; (这个和use YourNameSpace\News as News是一样的)

    如果是Yii2框架,那么通常数据模型的别名引用类似如下:

    use app\models\News;

    如果是Laravel,由于在Composer中已默认添加了app\models路径,将自动完成别名引用。

    所以只要确保类名正确,无需额外的use语句。

    使用框架时,由于最新的框架都遵循PSR-4自动加载命名规范,

    所以小心"下划线"( _ )在文件、路径名称中的使用,会被自动分解为多个路径来进行匹配。


    by iefreer

               

    分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • “The use statement with non-compound name … has no effect” 我们就能明白这个错误信息指的是use语句中出现的名称不是复合名称,不符合规则,所以“没有用”。 检查你的语句是不是直接在use后面跟上了类或接口...
    别名概述

    PHP5.3+支持命名空间:namespace,命名空间的一个重要功能是可以使用别名(alias)来引用一个符合规则的名字。

    命名空间支持3中形式的别名引用(或称之为引入)方式:类(class)别名,接口(interface)别名和命名空间(namespace)名字别名。

    PHP5.6+还支持函数别名和常量别名。

    (注:php.net 网站上关于别名这一段的中文描述有歧义和错误,更正如上)

    具体语法格式

    use xxx\xxx\xxx as xx;

    所以use语句实际上是一种别名引用,而不是通常的import。那么use后面出现的名称就得是符合规则的别名。

    错误及原因

    现在再来看类似文章标题中的错误信息:

    “The use statement with non-compound name … has no effect”

    我们就能明白这个错误信息指的是use语句中出现的名称不是复合名称,不符合规则,所以“没有用”。

    检查你的语句是不是直接在use后面跟上了类或接口的名字,比如

    use News;

    修改为:

    use YourNameSpace\News; (这个和use YourNameSpace\News as News是一样的)

    如果是Yii2框架,那么通常数据模型的别名引用类似如下:

    use app\models\News;

    如果是Laravel,由于在Composer中已默认添加了app\models路径,将自动完成别名引用。

    所以只要确保类名正确,无需额外的use语句。

    使用框架时,由于最新的框架都遵循PSR-4自动加载命名规范,

    所以小心"下划线"( _ )在文件、路径名称中的使用,会被自动分解为多个路径来进行匹配。


    by iefreer

    展开全文
  • To use CUDA with multiprocessing, you must use the ‘spawn’ start method 问题出现的背景:在一个使用 cuda 对模型训练进行加速的程序中,想要使用多进程对模型测试进行加速。 解决的办法:因为我是比较熟悉 ....
  • You can configure Gradle wrapper to use distribution with sources. It will provide IDE with Gradle API/DSL documentation. 后报错gradle同步失败: Failed to open zip file. Gradle's dependency cache may ...
  • 报了这样一个问题Use try-with-resources or close this "PrintWriter" in a "finally" clause.问题分析try catch之后没有 关闭PrintWriter解决办法在catch后加上关闭代码finally{ if(null != ...
  • material UI中withStylesmakeStyles的区别

    千次阅读 2019-10-27 22:22:14
      在material UI中,withStylesmakeStyles是经常使用的两个用于封装样式的函数。对于刚使用material UI的开发者而言,可能不太清楚这两者的区别。   本文简要探究这两者之间的功能使用上的差异。 差异一:...
  • /pytorch/aten/src/ATen/native/IndexingUtils.h:20: UserWarning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead. /pytorch/aten/src/ATen/native/IndexingUtils.h:...
  • mysql主从同步出现错误解决一例:本文出自老男孩linux运维实战培训内部教案内容整理...FAQ:问题1:mysqldump: Got error: 1556: You can't use locks with log tables. 在老男孩带学生做主从同步实践时,发现学生实
  • ValueError: 'c' argument has 1 elements, which is not acceptable for use with 'x' with size 300, 'y' with size 300. 修改为: import operator from functools import reduce plt.scatter(X[0, :], X[1, :],...
  • 修改之前: 出现错误:意为matches不是字符串则使用此方法错误 修改方法: 将最后两行代码改为:
  • 先看一条错误信息:Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. android Studio在执行新建项目时出现此错误,出现此错误的原因...
  • Use with torch.no_grad(): instead. 源代码 self.priors = Variable(self.priorbox.forward(), volatile=True) 原因 在torch版本中volatile已经被移除。 在pytorch 0.4.0之前 input= Variable(input, volatile=...
  • NDK编库时,出现error: cannot use ‘try’ with exceptions disabled这个错误。解决方案: 在Android.mk中添加LOCAL_CPPFLAGS += -fexceptions即可编译成功。
  • Do not concatenate text displayed with setText. Use resource string with placeholders.
  • 原因是DataFrame中日期列的数据类型为String。需要转换成日期类型。然后才进行日期比较 # 格式转换 divident['imp_ann_date'] = pd.to_datetime(divident['imp_ann_date'], format='%Y%m%d') # 筛选日期 ...
  • UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead. molded_images = Variable(molded_images, volatile=True) 修改为 # Wrap in variable with torch.no_...
  • 真机调试的时候遇到了如题的问题 ...“To use this device with Xcode, unlock the device and choose “Trust”. ??? whaaaat? 我又仔细看了一遍提示,“要想使用这个设备,解锁它选择信任”。
  • Pandas 处理两列时间,想求时间差,在做差时报...TypeError: ufunc subtract cannot use operands with types dtype('O') and dtype('<M8[ns]') bug 解释: 1. 'b' boolean 'i' (signed) integer 'u' unsign...
  • 简述Kotlin中let, apply, run, with区别

    千次阅读 2017-09-07 10:35:45
    简述Kotlin中let, apply, run, with区别 转载自:https://kotlintc.com/articles/1102 let 官方源码: public inline fun T.let(block: (T) -> R): R = block(this) 例子: fun main(args: ...
  • Use resource string with placeholders.【翻译】不要在setText方法中显示地连接字符串。使用带占位符的资源字符串。【造成原因】在TextView对象引用setText方法时,传入的是自己连接的字符串。【举例】字符串资源...
  • MAC: cannot use typeid with -fno-rtti

    千次阅读 2015-09-26 15:48:13
    1、使用命令行编译jni文件时,在~/.bash-profile中加入SDK、NDK环境变量: export PATH=$PATH:/Users/admin/AndroidForMac/AndroidNDK/android-ndk-r10e:/Users/admin/... 2、error: cannot use typeid with -fno
  • http://stackoverflow.com/questions/26993903/a-virtualbox-machine-with-the-name-homestead-already-exists If you're planning to use multiple VMs ...
  • 忘记网址了…… 问题: 分析思路与解决方法: 转载于:https://www.cnblogs.com/bravesunforever/p/11247988.html
  • Use try-with-resources or close this "workbook" in a "finally" clause. 问题分析 try catch之后没有 关闭workbook 解决办法 在catch后加上关闭代码 finally{ if(null != workbook) { ...
  • Sonar常见问题及修改建议(202001):... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一、报错信息 Use try-with-resources or close this "BufferedOutputStream"...
  • ‘c’ argument has 1 elements, which is not acceptable for use with ‘x’ with size 400, ‘y’ with size 400. 自己看了好几次,已有博客给了正解,但是没说清楚,还是没解决问题。 其实是修改planar_utils....
  • raise ValueError(“cannot use LOCALE flag with a str pattern”) ValueError: cannot use LOCALE flag with a str pattern 问题原因 xlwt版本较低,存在bug,需更新版本 解决办法 卸载并重装xlwt ...
  • spring.data.jpa.query :Cannot use native queries with dynamic sorting and/or pagination in method   spring data jpa 中原生 sql 查询无法使用分页怎么办?如果把 desc/esc 当参数传到 原生 sql 中也不行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,240,496
精华内容 496,198
关键字:

use和with的区别