小编And*_*nie的帖子

对于android库项目,<uses-sdk>在manifest中有意义吗?

这一切都在标题中.虽然我看到<uses-sdk>在我见过的所有示例库项目中都有指定AndroidManifest.xml,但我觉得它是无关紧要的.

事实上,我怀疑<uses-permission>也是无关紧要的,因为都是的属性<manifest>,比其他package.

谁能确认一下?

android android-manifest android-library

23
推荐指数
1
解决办法
6150
查看次数

将超类合并到Guava Objects.hashcode()实现的正确方法?

可能是一个愚蠢的问题,但我不想搞砸了.假设我有两个Java类,Class1并且Class2在哪里Class2 extends Class1.我想覆盖Object.hashcode()两个类使用Guava.对于超类,我有

@Override
public int hashCode() {
    return Objects.hashcode(mField1, mField2);
}
Run Code Online (Sandbox Code Playgroud)

对于Class2,实现hashcode()的正确方法是什么,将Class1的成员考虑在内?是这样的吗?

@Override
public int hashcode() {
    return Objects.hashcode(super.hashcode(), mField3, mField4);
}  
Run Code Online (Sandbox Code Playgroud)

SEEMS对我而言,但我正在寻找一些验证.Joshua Bloch没有在Effective Java中解决这种情况,而Guava文档也没有.

java guava

22
推荐指数
2
解决办法
3034
查看次数

暴露资源上的操作RESTful - 重载POST与PUT对比控制器资源

假设您有一个Person资源,其部分表示包含一个Location值,其值可以是"at home","at school"和"at work".你会如何重新开展"回家","上班","上学"等活动?为了便于讨论,让我们规定这些活动需要时间,因此它们是异步执行的,并且有多种方式可以使它们失败(没有交通方式,旅行期间的交通故障,上帝的其他行为等) .此外,Person资源还具有影响这些属性的其他属性和相关操作(例如,attribute = energy-level,operations = eat/sleep/excercise).

选项1:在Person资源上重载POST,提供一个输入参数,指示您希望该人做什么(例如,action = go-to-school).从POST返回202并在Person的表示中公开活动进行中状态属性,客户端可以获取该属性以观察进度和成功/失败.

好处:保持简单.

缺点:相当于隧道效应.发生的操作隐藏在有效负载中,而不是在URI,动词,标题等中可见.此资源上的POST动词没有单一的语义含义.

选项2:使用PUT将人员的位置设置为您希望他们拥有的状态.从PUT返回202并通过GET公开状态轮询的活动进行中属性.

好处:不确定我看到了什么.

缺点:实际上,这只是与另一个动词的隧道效应.此外,它在某些情况下不起作用(睡眠和进食都会增加能量水平,因此将能量水平设置为更高的值在您希望资源执行的操作方面是不明确的).

选项3:公开对Person对象进行操作的通用控制器资源.例如,创建一个PersonActivityManager资源,该资源接受带有标识目标Person和请求操作的参数的POST请求.POST可以返回PersonActivity资源来表示正在进行的活动,客户端可以通过GET来监视进度和成功/失败.

好处:通过将活动及其状态与Person资源分开,看起来更清晰.

缺点:现在我们已经将隧道移动到PersonActivityManager资源.

选项4:为每个支持的操作建立单独的控制器资源,例如,接受带有标识Person的参数(或URI元素)的POST请求的ToWorkTransporter资源,以及ToHomeTransporter,ToSchoolTransporter,MealServer,Sleeper和Exerciser.其中每个都从POST方法返回一个适当的任务监视资源(Commute,Meal,Slumber,Workout),客户端可以通过GET监视它.

好处:好的,我们终于消除了隧道效应.每个POST只意味着一件事.

缺点:现在谈论了很多资源(也许我们可以将传输器合并到一个接受目标参数的传输器中).其中一些是非常语义上的设计(一个沉睡者?).它可能更RESTful,但它是否实用?

rest

17
推荐指数
1
解决办法
3934
查看次数

使用copy-resources目标的maven-resources-plugin错误:'resources','outputDirectory'缺失或无效

我正在尝试使用maven-resources-plugin使用copy-resources目标进行一些过滤,并遇到以下错误:

Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.5:copy-resources (default-cli) on project bar: The parameters 'resources', 'outputDirectory' for goal org.apache.maven.plugins:maven-resources-plugin:2.5:copy-resources are missing or invalid
Run Code Online (Sandbox Code Playgroud)

为了隔离这个问题,我创建了一个非常简单的pom.xml,几乎从http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html中逐字复制,运行它,并得到了同样的错误.

我正在调用它

mvn resources:copy-resources
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?这是测试pom.xml.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>foo</groupId>
  <artifactId>bar</artifactId>
  <version>1.0-SNAPSHOT</version>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <executions>
          <execution>
            <id>copy-resources</id>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/extra-resources</outputDirectory>
              <resources>          
                <resource>
                  <directory>src/non-packaged-resources</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>              
            </configuration>            
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
Run Code Online (Sandbox Code Playgroud)

maven maven-resources-plugin

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

手势库中手势的变化是否会改善识别?

我正在努力在我的应用程序中实现手势识别,使用Gestures Builder创建手势库.我想知道手势的多种变化是否有助于或阻碍识别(或表现).例如,我想要识别圆形手势.我将至少有两个变体 - 一个用于顺时针圆圈,一个用于逆时针方向,具有相同的语义含义,因此用户无需考虑它.但是,我想知道是否需要为每个方向保存几个手势,例如,各种半径,或者具有"足够接近"的不同形状 - 如蛋形,椭圆等,包括不同的角度旋转每个.有人有这方面的经验吗?

android gesture-recognition gesture gestures

14
推荐指数
1
解决办法
2399
查看次数

Android In-App Billing v3:未收到签名

我正在我的应用程序上的In App Store中工作,我使用了robotmedia的AndroidBillingLibrary,当我使用库购买android.test.purchased时,响应没问题,我需要的所有数据都在那里.

问题是,当我切换到Android In-App Billing v3时,这都是从响应中收到的,没有签名.

{"packageName":"com.my.sampleapp","orderId":"transactionId.android.test.purchased","productId":"android.test.purchased","developerPayload":"","purchaseTime":0,"purchaseState":0,"purchaseToken":"inapp:com.my.sampleapp:android.test.purchased"}

我完全按照这个示例https://developer.android.com/training/in-app-billing/preparing-iab-app.html#GetSample但没有签名.我甚至运行谷歌给出的示例应用程序,但没有运气.

我正确地将我的Base64编码的RSA公钥 mHelper = new IabHelper(this, myPublicKey);

这是我的购买代码 mHelper.launchPurchaseFlow(this, itempackage, 10001, mPurchaseFinishedListener);

OnIabPurchaseFinishedListener mPurchaseFinishedListener = new OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            Log.i("Billing", "purchasing: " + result.getMessage());

            if (result.isFailure()) {
                Log.i("Billing", "Error purchasing: " + result);
                return;
            } else if (purchase.getSku().equals("android.test.purchased")) {
                Log.i("Billing - signature", purchase.getSignature());
                consumeItems();
            } else {
                Log.i("Billing", "Error purchasing: " + result);
            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

不知何故,我的mPurchaseFinishedListener在购买后没有收到任何东西,但protected …

android in-app-purchase

13
推荐指数
1
解决办法
7161
查看次数

我可以在运行时指定maven project.artifactId吗?

我有一个maven POM,我想用作模板,根据我传递给它的参数产生具有不同名称的工件.但我无法弄清楚如何在运行时指定artifactId.

如果我<artifactId>像这样参数化元素:

<artifact>foo-${bar}</artifact>
Run Code Online (Sandbox Code Playgroud)

maven抱怨:

[警告]'artifactId'包含一个表达式,但应该是一个常量.

如果我<artifactId>在POM中遗漏并尝试在命令行中指定它

mvn -Dproject.artifactId=foo ...
Run Code Online (Sandbox Code Playgroud)

maven抱怨:

[错误]'artifactId'缺失.

除了从模板中即时生成POM文件之外,还有其他技巧可以用来完成吗?[嗯,也许我可以使用maven资源过滤来做到这一点...]

maven-3 maven

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

jmockit和robolectric可以共存吗?

我正在尝试使用Robolectric来实现单元测试来替换android.jar中的stubbed方法,同时还使用jMockit来模拟Android类(在我的例子中是Fragment).但是,我似乎无法让它发挥作用.如果我用测试类注释@RunWith(RobolectricTestRunner.class),我得到:

java.lang.IllegalStateException:JMockit未正确初始化; 检查jmockit.jar是否在类路径中的junit.jar之前(如果使用JUnit;如果没有,请检查文档)

如果我使用@RunWith(JMockit.class)或不使用@RunWith,我会得到"Stub!" 例外.

目前,我的类路径按以下顺序排列:robolectric,jmockit,junit,android.

那里的任何人都可以让jmockit和robolectric一起玩得很好吗?

android jmockit robolectric

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

如果使用Twig/Objectify/etc,可以从GAE项目中消除与JDO/JPA相关的JAR吗?

在我的Google App Engine项目中,我目前正在使用Twig访问数据存储区(但我怀疑我的问题与其他第三方库,如SimpleDS,Objectify等相关).

我以为我应该能够从WEB-INF/lib文件夹中删除部分或全部以下JAR:

datanucleus-appengine-[...].jar
datanucleus-core-[...].jar
datanucleus-jpa-[...].jar
geronimo-jpa_[...].jar
geronimo-jta_[...].jar
jdo2-api-[...].jar
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我从Eclipse那里得到错误抱怨"WEB-INF/lib目录中缺少App Engine SDK JAR".

是否真的有必要保留所有这些(未使用过的)JAR?

google-app-engine google-cloud-datastore

5
推荐指数
1
解决办法
403
查看次数

intellij将maven-resources-plugin设置的属性标记为"无法解析符号"

在我的项目的POM中,我使用maven-resources-plugin从文件中设置一些属性.但是,Intellij在POM中标记这些属性引用的错误"无法解析符号",可能是因为它无法在任何地方看到它们被定义.有没有办法抑制这个错误?

intellij-idea maven maven-resources-plugin

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