小编Ice*_*nte的帖子

引用layout/main.xml中的内部类View时出错

哎呀...

我在Activity中创建了一个视图的子类作为内部类.之前我只是从我的活动链接到此视图:

setContentView(new CustomView(this));
Run Code Online (Sandbox Code Playgroud)

没有问题.

然而,现在,我的视图变得越来越复杂,所以我将它作为FrameLayout的一部分,这样我就可以将它作为基本视图并在其上添加一个Spinner小部件.问题是,当我这样做时,我收到一个错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.grafightscratch.ochemmer/com.grafightscratch.ochemmer.MoleculeTablet}: android.view.InflateException: Binary XML file line #4: Error inflating class com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
...
Caused by: android.view.InflateException: Binary XML file line #4: Error inflating class com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
...
Caused by: java.lang.ClassNotFoundException: com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView in loader dalvik.system.PathClassLoader@43b74a28
Run Code Online (Sandbox Code Playgroud)

所以这个视图在我直接链接到它之前有效,但是当我尝试将它作为framelayout的一部分添加到main.xml文件中时,我得到了上述错误.我也试过放入一个布局,只有通过以下方式显示:

<com.grafightscratch.ochemmer.MoleculeTablet.MoleculeTabletView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/molecule_tablet_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Run Code Online (Sandbox Code Playgroud)

什么都行不通.我一直收到InflateException/ClassNotFoundException错误.它抱怨二进制XML文件中的"第3行",如果它正在讨论main.xml,那就是我已经三次检查的包声明.

编辑 我试图使这个视图成为一个单独的类(即 - 不是内部类),它的工作原理.经过一番搜索,我发现一些帖子说xml标签应该是这样的:

<com.grafightscratch.ochemmer.MoleculeTablet$MoleculeTabletView ...>
Run Code Online (Sandbox Code Playgroud)

即,应使用美元符号将内部类与主类分开.但是,Eclipse barfs就此称之为错误,并拒绝让我在那里构建或部署该角色.所以现在问题变成了:如何引用一个内部类的View?

layout android view

56
推荐指数
3
解决办法
3万
查看次数

以编程方式将证书添加到Java KeyStore的选项

我收到了SSL握手异常错误:PKIX"路径不链"(此处描述).我通过使用openssl导入证书链来修复它:

openssl s_client -host www.envmgr.com -port 443 -showcerts > cert_chain.crt

并将其安装到我的JDK密钥库中:

keytool -import -alias envmgrchain -file cert_chain.crt -keystore cacerts -storepass changeit
Run Code Online (Sandbox Code Playgroud)

这很有效.万岁.问题是我们将把我们的应用程序放在像rackspace或AWS这样的云服务器上,我认为我们很有可能无法修改JVM的密钥库来添加这个链.

我想,"没问题,我只是以编程方式将此证书链添加到密钥库"所以我将其从JVM中删除:

keytool -delete -alias envmgrchain -keystore cacerts -storepass changeit
Run Code Online (Sandbox Code Playgroud)

并添加了此代码:

    KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
    //Create an empty keystore that we can load certificate into
    trustStore.load(null);
    InputStream fis = new FileInputStream("cert_chain.crt");
    BufferedInputStream bis = new BufferedInputStream(fis);

    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    while(bis.available()>0) {
        Collection<? extends Certificate> certs = cf.generateCertificates(bis);
        Iterator<? extends Certificate> iter = certs.iterator();
        //Add each cert …
Run Code Online (Sandbox Code Playgroud)

java ssl keystore pkix programmatically-created

12
推荐指数
1
解决办法
1万
查看次数

根据参数渲染输出格式(HTML,JSON,XML)?

是否有一种好的或正确的方法来根据参数在Play Framework中呈现输出?例:

对于HTML:

http://localhost:9000/user/get/5?v=HTML // should render HTML template
Run Code Online (Sandbox Code Playgroud)

对于JSON:

http://localhost:9000/user/get/5?v=JSON // should render JSON template
Run Code Online (Sandbox Code Playgroud)

我认为请求拦截器可以实现这一点,但我不知道如何开始或从哪里开始:-(

或者,也许,写一个render method读取参数和输出请求的将军,但这在我看来像是矫枉过正?

rest playframework-2.0

11
推荐指数
1
解决办法
9719
查看次数

使用哈希码获取唯一ID

我在基于java的系统中工作,我需要为可视显示中的某些元素设置id.一类元素是字符串,所以我决定使用String.hashCode()方法来获取这些元素的唯一标识符.

然而,我遇到的问题是,如果id是负数并且String.hashCode经常返回负值,我在borks工作的系统.一个快速的解决方案是在hashcode调用周围使用Math.abs()来保证肯定的结果.我对这种方法感到疑惑的是,两个不同元素具有相同哈希码的可能性是多少?

例如,如果一个字符串返回的哈希码为-10,另一个字符串返回的哈希码为10,则会发生错误.在我的系统中,我们讨论的是通常不超过30个元素的对象集合,所以我不认为这确实是一个问题,但我很好奇数学所说的.

java unique hashcode

10
推荐指数
2
解决办法
1万
查看次数

我可以使用git fsck来显示提交名称吗?

我有一个已删除的提交,在许多已删除的提交中,我正在尝试恢复.我发现了fsck --lost-found命令.大!

问题是我有超过一百个悬空提交语句,信息很少.

dangling commit 654857f5e8418c4031e1d8411579906c528da562
dangling commit 74499bd482d688c1416d5091b391d82a438855a9
dangling commit 124ed7cd4465434865577c82757732df62febb59
dangling commit 92573bf4595be6f80f22eba94548dbc88d8796fc
dangling commit 125b0ffa3f0db71f23fda65d6adb2f9941748cc0
dangling commit ba5b1f8d6d920900abc88bd725d44ba86c8c772f
dangling blob e760d751ae4e3dab9beed0996e683c0f291eb4cc
Run Code Online (Sandbox Code Playgroud)

如果它可以抛出提交名称与sha将是一个很大的帮助.实际上,我必须逐个运行git show,以找到正确的提交.有没有更简单的方法?

git

10
推荐指数
2
解决办法
2070
查看次数

PKIX路径不与Windows环境中的任何信任锚错误链接

我对SSL和Webservices如何在细粒度级别上工作有点痴迷.我正在开发一个调用多个Web服务的系统,其中一些具有安全URL,另一些则没有什么问题.但是,目前我正在与Endicia的LabelServer Web API进行集成.Web服务用于计算和打印邮资.

测试URL和WSDL位于:https://www.envmgr.com/LabelService/EwsLabelService.asmx

我使用wsimport创建和设置一个Java客户端来连接到这个webservice但是当我尝试所有它时我得到了错误

PKIX路径验证失败:java.security.cert.CertPathValidatorException:Path不与任何信任锚链接

此错误记录在此处:Java7拒绝信任信任存储中的证书

其中讨论了Java 7如何使用带有"坏"关键字的自签名证书强制出错.在这种情况下,错误定义为不包含keyCertSign.Web服务确实可以使用Java 6.我可以相信这种情况可能适用于此证书,因为它仅用作测试服务器,但我不知道如何验证.

有一个关于它的错误报告已经解决了(http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7018897),但我不确定这些转换如何解决Windows Tomcat的问题环境.我将证书导出到我的机器上,但不确定如何从那里开始.

编辑:我尝试使用OpenSSL修改证书并将其添加到我的密钥库,如"拒绝信任信任存储中的证书"链接中所述,它不起作用.看起来这是一个由证书所有者完成的过程,对吗?我想知道是否有一些方法可以配置我的Java 7环境让这个证书通过.

ssl keystore keytool java-7

8
推荐指数
2
解决办法
5万
查看次数

从Eclipse运行Gradle Build而不进行测试

我有一个使用java插件的gradle构建文件.如果我想从命令行调用build并避免运行单元测试,我可以这样做:

gradle build -x test
Run Code Online (Sandbox Code Playgroud)

但是,我们将从Eclipse调用gradle任务.我是否需要为此类构建构建特殊任务?我该怎么做呢?

java eclipse gradle

8
推荐指数
2
解决办法
1万
查看次数

IntelliJ Grails 3项目:无法运行Grails项目

在最近尝试让GGTS可靠地工作失败后,我最近将IntelliJ安装到了我的机器上.到目前为止,导入Grails项目后,错误消息清晰且易于解决.GGTS迫使我从Grails 3降级到2,因为当时GGTS似乎不支持Grails 3.我在将IntelliJ指向Grails 3之后遇到了问题,但重新启动IntelliJ似乎解决了这些问题.但是,现在,我无法启动项目,并收到以下错误:

"C:\Program Files\Java\jdk1.8.0_51\bin\java" ...;C:\dev\grails-3.0.4\lib\xalan\serializer\jars\serializer-2.7.2.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 15.0\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.grails.cli.GrailsCli run-app
Error |
Problem updating profiles from origin git repository (Use --stacktrace to see the full trace)
Error |
Could not checkout tag for Grails release [3.0.4]: repository not found: C:\Users\Randeep\.grails\repository (Use --stacktrace to see the full trace)
Error |
Error occurred running Grails CLI: No profile found for name [web]. (Use --stacktrace to see the full trace)

Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

请注意" 从源git存储库更新配置文件的问题 "消息.这是一个git项目,但我不知道为什么IntelliJ正在尝试进行任何git操作(我不想要它,我只是想让它运行我的项目).

grails intellij-idea java-8

8
推荐指数
1
解决办法
5645
查看次数

JavaFX 2的可移植性如何?

我正在考虑在我的64位Windows 7机器上启动JavaFX项目.我正在做的是设计一个全屏控制台应用程序.除条形码扫描仪外,它不是交互式的.

我正在设计这个我认为是Ubuntu笔记本电脑或其他一些Linux版本,尽管不同的Windows操作系统也是可能的(以及32位).据我所知,Java FX版本2.x在其可移植性方面取得了很大的进步,但是我想在这里向社区询问他们在部署JavaFX应用程序时的经验.

您是否已成功在各种不同的架构上使用它们?你遇到了什么问题?

portability javafx-2

7
推荐指数
1
解决办法
1056
查看次数

Java Streams:将集合组织到地图中并选择最小的键

我很确定这在一行中是不可能的,但我只是想检查一下:

List<WidgetItem> selectedItems = null;
Map<Integer, List<WidgetItem>> itemsByStockAvailable = WidgetItems.stream()
     .collect(Collectors.groupingBy(WidgetItem::getAvailableStock));
selectedItems = itemsByStockAvailable.get(
     itemsByStockAvailable.keySet().stream().sorted().findFirst().get());
Run Code Online (Sandbox Code Playgroud)

基本上我将所有小部件项目收集到一个地图中,其中关键字是availableStock数量,值是具有该数量的所有小部件的列表(因为多个小部件可能具有相同的值).有了这张地图后,我想选择与最小键对应的地图值.创建Map的中间步骤不是必需的,这是我能想到的唯一方法.

java java-8 java-stream

6
推荐指数
1
解决办法
308
查看次数