精华内容
参与话题
问答
  • 此刻,我有一百万个想不明白,写了这么久的代码,代码如此正确、优美,怎么个就报空指针呢?

    此刻,我有一百万个不明白,写了这么久的代码,代码如此正确、优美,怎么个就报空指针呢?
    在这里插入图片描述
    布局代码

    <TextView
            android:id="@+id/id_tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="texts"
            android:layout_alignParentBottom="true"/>
    

    起因是这样的:
    从GitHub上下载老外写的项目,为了更好的学习代码,自己就在源代码中添加新的控件,比如TextView,然鹅,万万没想到的是报空指针了,在Android 6.0 以下运行没问题(夜神API19.Android 4.4.2测试没问题),Android6.0 及以上就闪退报空指针,瞬间陷入沉思,尼玛,这都能报空指针,一个早上硬是没找到原因,不好意思,俺又开始怀疑人生了。
    哈哈哈~
    一个中午过去了,问题找到咯!只怪自己太单纯、太可爱、太愚笨~
    在这里插入图片描述
    在这里插入图片描述
    总结:
    空指针问题臭名昭著、远近闻名、司空见惯。出现这个问题,大多数情况是代码有误,认真检查一般都是可以解决掉的,还有一种情况就是如上所述,有多个同名布局时(这些布局通常情况下对应的一些手机尺寸)。怎么解决呢?1.直接删掉多余的布局,比如layout-V21这类(注意:自己的项目或者公司的项目要小心,可删不可删要衡量),2.愚笨的方法,在每一个布局里都加入相同的代码。

    图片分享:
    在这里插入图片描述

    展开全文
  • #include #include //定义类型 typedef int datatype; typedef struct node { datatype data; struct node*next;...出现错误: undefined reference to `create_list()' 这是为什么呀??
  • dubbo @Reference 注解注入原理

    千次阅读 2019-09-19 19:29:26
    被@Reference 注解的 bean,是在什么时机注入的? 被@Reference 注解的 bean,通常是一个接口,怎么可以被实例化呢? 答案是: @Reference 的注入时机和 @Autowired 注解是类似的,但不完全一样。负责修饰 bean ...

    问题:

    被@Reference 注解的 bean,是在什么时机注入的?
    被@Reference 注解的 bean,通常是一个接口,怎么可以被实例化呢?
    答案是:

    @Reference 的注入时机和 @Autowired 注解是类似的,但不完全一样。负责修饰 bean 属性的 BeanFactoryPostProcessor不同。
    @Reference修饰的域是通过动态代理实现的。也就是生成了一个动态的接口实现类。

    在github上https://github.com/alibaba/dubbo-spring-boot-starter下载了dubbo-spring-boot-starter

    在spring.factories文件中找到DubboConsumerAutoConfiguration类

    @Configuration
    @ConditionalOnClass(Service.class)
    @ConditionalOnBean(annotation = EnableDubboConfiguration.class)
    @AutoConfigureAfter(DubboAutoConfiguration.class)
    @EnableConfigurationProperties(DubboProperties.class)
    public class DubboConsumerAutoConfiguration extends DubboCommonAutoConfiguration {
      private static final Map<ClassIdBean, Object> DUBBO_REFERENCES_MAP =
          new ConcurrentHashMap<ClassIdBean, Object>();
    
      @Autowired
      private ApplicationContext applicationContext;
      @Autowired
      private DubboProperties properties;
    
      public static Object getDubboReference(ClassIdBean classIdBean) {
        return DUBBO_REFERENCES_MAP.get(classIdBean);
      }
    
      @Bean
      public BeanPostProcessor beanPostProcessor() {
        return new BeanPostProcessor() {
    
          @Override
          public Object postProcessBeforeInitialization(Object bean, String beanName)
              throws BeansException {
            Class<?> objClz;
            if (AopUtils.isAopProxy(bean)) {
              objClz = AopUtils.getTargetClass(bean);
            } else {
              objClz = bean.getClass();
            }
    
            try {
              for (Field field : objClz.getDeclaredFields()) {
              //判断该字段是否有 Reference 注解
                Reference reference = field.getAnnotation(Reference.class);
                if (reference != null) {
                  DubboConsumerAutoConfiguration.this
                      .initIdConfigMap(DubboConsumerAutoConfiguration.this.properties);
                  ReferenceBean<?> referenceBean =
                      DubboConsumerAutoConfiguration.this.getConsumerBean(beanName, field, reference);
                  Class<?> interfaceClass = referenceBean.getInterfaceClass();
                  String group = referenceBean.getGroup();
                  String version = referenceBean.getVersion();
                  ClassIdBean classIdBean = new ClassIdBean(interfaceClass, group, version);
                  Object dubboReference =
                      DubboConsumerAutoConfiguration.DUBBO_REFERENCES_MAP.get(classIdBean);
                  if (dubboReference == null) {
                    synchronized (this) {
                      // double check
                      dubboReference =
                          DubboConsumerAutoConfiguration.DUBBO_REFERENCES_MAP.get(classIdBean);
                      if (dubboReference == null) {
                        referenceBean.afterPropertiesSet();
                        // dubboReference should not be null, otherwise it will cause
                        // NullPointerException
    					//获取 dubbo reference,也就是代理类
                        dubboReference = referenceBean.getObject();
                        DubboConsumerAutoConfiguration.DUBBO_REFERENCES_MAP.put(classIdBean,
                            dubboReference);
                      }
                    }
                  }
                  field.setAccessible(true);
                  field.set(bean, dubboReference);
                }
              }
            } catch (Exception e) {
              throw new BeanCreationException(beanName, e);
            }
            return bean;
          }
    ...
    }

    ReferenceBean 的getObject()方法就是进入到ReferenceBean 类中,和xml配置就是相同的了

    注意点:

      new BeanPostProcessor(){重写postProcessBeforeInitialization方法},在spring 容器中注册bean后,会自动应用在容器中。在所有Bean实例化之后进行判断其属性字段上是否有 @Reference 注解。

    展开全文
  • "undefined reference to" 问题解决方法

    万次阅读 多人点赞 2019-05-30 21:01:00
    (.text+0x13): undefined reference to `func’ 关于undefined reference 这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。 1. 链接时缺失了相关...

    最近在 Linux 下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:

    (.text+0x13): undefined reference to `func’

    关于undefined reference 这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。

    1. 链接时缺失了相关目标文件(.o)
    测试代码如下:
    测试代码
    然后编译。

    gcc -c test.c
    gcc –c main.c

    得到两个 .o 文件,一个是 main.o,一个是 test.o ,然后我们链接 .o 得到可执行程序:

    gcc -o main main.o

    这时,你会发现,报错了:

    main.o: In function `main’:
    main.c:(.text+0x7): undefined reference to ‘test’
    collect2: ld returned 1 exit status

    这就是最典型的 undefined reference 错误,因为在链接时发现找不到某个函数的实现文件,本例中 test.o 文件中包含了 test() 函数的实现,所以如果按下面这种方式链接就没事了。

    gcc -o main main.o test.o

    【扩展】:其实上面为了让大家更加清楚底层原因,我把编译链接分开了,下面这样编译也会报 undefined reference 错,其实底层原因与上面是一样的。

    gcc -o main main.c //缺少test()的实现文件

    需要改成如下形式才能成功,将 test() 函数的实现文件一起编译。

    gcc -o main main.c test.c //ok,没问题了

    2. 链接时缺少相关的库文件(.a/.so)
    在此,只举个静态库的例子,假设源码如下。
    在这里插入图片描述
    先把test.c编译成静态库(.a)文件

    gcc -c test.c
    ar -rc test.a test.o

    至此,我们得到了 test.a 文件。我们开始编译 main.c

    gcc -c main.c

    这时,则生成了 main.o 文件,然后我们再通过如下命令进行链接希望得到可执行程序。

    gcc -o main main.o

    你会发现,编译器报错了:

    /tmp/ccCPA13l.o: In function `main’:
    main.c:(.text+0x7): undefined reference to ‘test’
    collect2: ld returned 1 exit status

    其根本原因也是找不到 test() 函数的实现文件,由于该 test() 函数的实现在 test.a 这个静态库中的,故在链接的时候需要在其后加入 test.a 这个库,链接命令修改为如下形式即可。

    gcc -o main main.o ./test.a //注:./ 是给出了test.a的路径

    【扩展】:同样,为了把问题说清楚,上面我们把代码的编译链接分开了,如果希望一次性生成可执行程序,则可以对 main.c 和 test.a 执行如下命令。

    gcc -o main main.c ./test.a //同样,如果不加test.a也会报错

    3. 链接的库文件中又使用了另一个库文件
    这种问题比较隐蔽,也是我最近遇到的与网上大家讨论的不同的问题,举例说明如下,首先,还是看看测试代码。
    在这里插入图片描述
    从上图可以看出,main.c 调用了 test.c 的函数,test.c 中又调用了 fun.c 的函数。
    首先,我们先对 fun.c,test.c,main.c 进行编译,生成 .o 文件。

    gcc -c func.c
    gcc -c test.c
    gcc -c main.c

    然后,将 test.c 和 func.c 各自打包成为静态库文件。

    ar –rc func.a func.o
    ar –rc test.a test.o

    这时,我们准备将 main.o 链接为可执行程序,由于我们的 main.c 中包含了对 test() 的调用,因此,应该在链接时将 test.a 作为我们的库文件,链接命令如下。

    gcc -o main main.o test.a

    这时,编译器仍然会报错,如下:

    test.a(test.o): In function `test’:
    test.c:(.text+0x13): undefined reference to ‘func’
    collect2: ld returned 1 exit status

    就是说,链接的时候,发现我们的 test.a 调用了 func() 函数,找不到对应的实现。由此我们发现,原来我们还需要将 test.a 所引用到的库文件也加进来才能成功链接,因此命令如下。

    gcc -o main main.o test.a func.a

    ok,这样就可以成功得到最终的程序了。同样,如果我们的库或者程序中引用了第三方库(如 pthread.a )则同样在链接的时候需要给出第三方库的路径和库文件,否则就会得到 undefined reference 的错误。

    4 多个库文件链接顺序问题
    这种问题也非常的隐蔽,不仔细研究你可能会感到非常地莫名其妙。我们依然回到第3小节所讨论的问题中,在最后,如果我们把链接的库的顺序换一下,看看会发生什么结果?

    gcc -o main main.o func.a test.a

    我们会得到如下报错.

    test.a(test.o): In function `test’:
    test.c:(.text+0x13): undefined reference to ‘func’
    collect2: ld returned 1 exit status

    因此,我们需要注意,在链接命令中给出所依赖的库时,需要注意库之间的依赖顺序,依赖其他库的库一定要放到被依赖库的前面,这样才能真正避免 undefined reference 的错误,完成编译链接。

    5. 在c++代码中链接c语言的库
    如果你的库文件由c代码生成的,则在 c++ 代码中链接库中的函数时,也会碰到undefined reference 的问题。下面举例说明。

    首先,编写 c 语言版库文件:
    在这里插入图片描述
    编译,打包为静态库:test.a

    gcc -c test.c
    ar -rc test.a test.o

    至此,我们得到了 test.a 文件。下面我们开始编写 c++ 文件 main.cpp
    在这里插入图片描述
    然后编译main.cpp生成可执行程序:

    g++ -o main main.cpp test.a

    会发现报错:

    /tmp/ccJjiCoS.o: In function `main’:
    main.cpp:(.text+0x7): undefined reference to ‘test()’
    collect2: ld returned 1 exit status

    原因就是 main.cpp 为 c++ 代码,调用了 c 语言库的函数,因此链接的时候找不到,解决方法:即在 main.cpp 中,把与 c 语言库 test.a 相关的头文件包含添加一个 extern “C” 的声明即可。例如,修改后的 main.cpp 如下:
    在这里插入图片描述

    g++ -o main main.cpp test.a

    再编译会发现,问题已经成功解决。

    转自《“undefined reference to” 问题解决方法》

    展开全文
  • VADettask.cpp调用UdpBroadcast.h的函数成员显示 undefined reference to `UdpBroadcast::UdpSocketCreate() UdpBroadcast.h代码: ``` #ifndef _UDP_BROADCAST_H_ #define _UDP_BROADCAST_H_ #include ...
  • unresolved reference",我就很郁闷,明明代码可以正确运行的啊,怎么会出现这种错误。 红色错误提示看着真心不爽,索性去网上百度了一圈,居然没找到解决办法,后来在stackoverflow上看到有人遇到同样...

    刚装了pycharm,结果照着教程敲代码,pycharm始终用红色提示我"unresolved reference",

    红色错误提示看着真心不爽,索性去网上百度了一圈,居然没找到解决办法,后来在stackoverflow上看到有人遇到同样问题,按照给出的方法,成功解决了这个问题。

    其实很简单,在目录上右键,选择Mark Directory As Sources root,把你的项目目录添加到sources root里,

    然后在设置中,勾选Add source roots to PYTHONPATH,把sources root添加到PYTHONPATH里,

    Apply更改后,错误提示就没有了,看!

    PS: 在用模板的时候,也会提示找不到模板文件,而事实上代码可以正确运行,这还是在pycharm里设置的原因。这里同样可以在设置里找到添加目录为模板的选项,还可以设置为jinja2。

     


    到这里,我的问题被解决了一半。

     这里还是没得到解决,下面是报错:

    from PIL import Image ImportError: 

    No module named PIL

    解决方案:

    安装pip(有pip直接下一步)

    sudo apt install python-pip

    安装 Pillow

    pip install Pillow

     

    展开全文
  • Dubbo之@ReferenceReferenceBean

    千次阅读 2019-07-17 12:41:49
    1、构建一个ReferenceBean,然后使用Spring的@Autowired引用服务 @Bean public ReferenceBean<PLRepaymentPlanService> repaymentPlanServiceReferenceBean(){ ReferenceBean<PLRepayment...
  • Goland 提示 Unresolved reference 错误解决

    万次阅读 2019-05-14 10:51:57
    之前一直正常的项目,莫名其妙的 database/sql 包下的方法、结构体等等IDE都无法识别,出现一堆错误提示,但包导入路径可以正确定位,而且项目运行也正常,其他包都正常,另一个项目下同样使用sql包也正常。...
  • undefined reference to AAssetManager_FromJava ``` 非AndroidStudio环境下 如果在 AndroidStudio下 gradle里加 ``` find_libary(android) ``` 是可以的 但是我在外部环境中用find_libary报找不到 ```...
  • dubbo:reference引入的bean,该怎么注入,可以用注解@Autowired注入吗,或者@reference注入,还是只能set注入??? <!-- 引用 dubbo 服务 --> <dubbo:reference id="sellerService" interface=...
  • 描述:模块部分,写一个外部模块导入的时候居然提示unresolved reference,如下,程序可以正常运行,但是就是提示包部分红色,看着特别不美观,下面是解决办法 PyCharm版本: 解决: 1.在项目上 单击右键 -&...
  • 本来想做个英雄连的mod启动器,可以分别启动不同的mod,但是总是提示undefined reference,后面发现用最简单的hello world也报错。但是我在qtcreator里面能够正常编译。求前辈解答 代码截图如下: ![图片说明]...
  • android 解决 undefined reference to 报错

    千次阅读 2019-06-05 11:19:24
    在jni中写了一个inline函数、编译时报错undefined reference to。 仔细检查了下,我已经在c文件前面定义了这个函数。 inline const char *checkJumpFileName(char *name,char* jumpName[] , int jumpNameLen[],int ...
  • python reference

    2018-09-21 18:30:57
    https://www.cnblogs.com/yuyan/archive/2012/04/21/2461673.html
  • /build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/src/tbb/scheduler_common.h:431: error: undefined reference to ‘fegetenv’ /build/master_pack-android/build/o4a/3rdparty/tbb/tbb-2018_U1/...
  • Endnote Reference Type

    千次阅读 2019-12-16 09:24:35
    根据GB3469-83《文献类型与文献载体代码》规定,以单字母标识: M——专著(含古籍中的史、志论著) C——论文集 N——报纸文章 J——期刊文章 D——学位论文 R——研究报告 S——标准 ...E...
  • 当我们使用GreenDao并且加入了更多插件的时候,很容易出现Unresolved reference:的错误 解决方案 修改项目module的build.gradle文件后重新sync就解决了,如果有其他错误请在评论像我询问 apply plu
  • python reference理解

    2019-11-03 13:57:59
    在python中当我们创建一个新变量并赋值时,实际上我们是创建了一个object和一个reference。例如当我们执行如下语句的时候:a=1,一个值为1的objec将t在内存中被创建,并且一个reference 'a’被指向这个object。假如...
  • ```D:\documents\HelloSerialPort\mainwindow.cpp:20: error: undefined reference to SPComm::isOpen() const``` ```D:\documents\HelloSerialPort\debug\mainwindow.o:-1: In function `ZN10MainWindow23on_...
  • 项目中运用springboot+dubbo注解方式的配置开发,正常启动项目没有什么问题,但是当我在写单元测试的时候,发现@Reference标注的属性为null,导致调用空指针异常. 相关代码 待测试方法: ``` @RestController @...
  • Unresolved template reference

    千次阅读 2019-06-20 12:24:13
    1、警告 PyCharm中开发Python Flask使用BootStrap模板, 继承模板时{% ... 2、解决 警告原因是解析不到模板的指向。虽然程序可以正常运行,消除警告的方法是手动为PyCharm指定存放模板文件的目录。一般我们会将...
  • 网上找了很多种方法试了都没起效果。然后试了下面步骤解决了。 个人认为,可能是我先依据其它博主方法都设置好了,执行这个才有了效果。
  • C:\Users\FeiMao\AppData\Local\Temp\cc1PfS40.o:main.c:(.text+0x81): undefined reference to `mysql_init@4' C:\Users\FeiMao\AppData\Local\Temp\cc1PfS40.o:main.c:(.text+0xc6): undefined reference to `...
  • 04-18 16:10:20.420: I/dalvikvm(13815): **JNI ERROR (app bug): accessed deleted global reference 0x1d5004ea** 04-18 16:10:20.420: E/dalvikvm(13815): VM aborting 04-18 16:10:20.420: A/libc(13815): ...
  • 该方法适用于jetbrains的所有ide,在index entire GOPATH打勾 完美解决
  • c# WebReference与ServiceReference 小结

    千次阅读 2018-08-22 16:33:57
    WebReference是由wsdl.exe生成客户端代理的。生成webservice代理类的方法,即从System.Web.Services.Protocols.SoapHttpClientProtocol派生而来,代理类代码可以指定要访问的Url属性。 ServiceReference是由svcutil...
  • Kotlin Unresolved reference: 解决办法

    万次阅读 热门讨论 2018-01-05 16:42:20
    kotlin Unresolved reference:错误的解决办法
  • undefined reference to

    千次阅读 2019-03-15 19:43:39
    多个库文件链接顺序问题 这种问题非常隐蔽,不仔细研究,可能会感到非常地莫名其妙。以第三个示例为测试代码,把链接库的顺序换一下,如下所示: ... test.c:(.text+0x13): undefined reference...

空空如也

1 2 3 4 5 ... 20
收藏数 124,726
精华内容 49,890
关键字:

reference