我正在尝试使用Eclipse Indigo和ADT r20使用ActionBarSherlock 4.1构建一个小型示例应用程序.
我创建了一个带有空白活动的新Android项目,将actionbarsherlock.jar复制到libs并在构建路径中引用它.
该应用程序构建成功,但在启动模拟器(使用2.2)或设备(使用4.0.4)时,它崩溃并出现错误:
java.lang.NoClassDefFoundError: com.actionbarsherlock.R$styleable
at com.actionbarsherlock.view.MenuInflater$MenuState.readItem(MenuInflater.java:328)
...
Run Code Online (Sandbox Code Playgroud)
我没有使用proguard.
我已经尝试清理ActionBarSherlock项目,将新jar复制到我的示例项目的libs中,然后清理我的示例项目.
我的MainActivity.java非常简单:
package com.example.lrn;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import android.os.Bundle;
public class MainActivity extends SherlockActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
菜单只有一个项目:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
android:title="@string/menu_settings"
android:orderInCategory="100"
android:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)
AndroidManifest.xml也就像Eclipse创建它一样:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lrn"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter> …Run Code Online (Sandbox Code Playgroud) 我正在研究使用delayed_job的队列.我发现这个页面概述了各种启动工人的方法,但我想保留目前的Capistrano方法:
set :delayed_job_args, "-n 2 -p ecv2.production"
after "deploy:start", "delayed_job:start"
...
Run Code Online (Sandbox Code Playgroud)
我想知道如何修改delayed_job_args来处理具有特定队列的产生1工作者,以及为每个其他工作处理1个工作者.到目前为止,我所拥有的只是如此重写每项任务:
namespace :delayed_job do
task :restart, :roles => :app do
run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job -p ecv2.production --queue=export restart"
run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job -p ecv2.production restart"
end
end
Run Code Online (Sandbox Code Playgroud)
......但那没什么好玩的.有什么建议?
我无法弄清楚我是否做过愚蠢的事情,或者我是否在gorm中发现了一个错误.虽然我非常清楚"无效的内存地址或无指针取消引用"是什么意思,但我对它出现在这里的原因完全不知所措.
简而言之,我打电话给db.First()我,我没有明显的理由感到恐慌.
我的代码的相关部分:
package main
import (
"fmt"
"github.com/gorilla/mux"
"github.com/jinzhu/gorm"
"net/http"
"os"
)
type message struct {
gorm.Model
Title string
Body string `sql:"size:0"` // blob
}
var db = gorm.DB{} // garbage
func messageHandler(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
m := message{}
query := db.First(&m, vars["id"])
if query.Error != nil {
if query.Error == gorm.RecordNotFound {
notFoundHandler(w, r)
return
} else {
fmt.Fprintf(os.Stderr, "database query failed: %v", query.Error)
internalServerErrorHandler(w, r)
return
}
}
// actually do …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Google Apps脚本中计算HMAC签名,但文档并未100%明确我需要如何传递参数,而且我无法获得预期的输出.
为了确定我是否得到正确的输出,我将结果与已知良好的PHP代码进行比较.该代码是:
$key = "a2V5"; # this is "key" base64-encoded
$value = "test";
$result = base64_encode(hash_hmac('sha512', $value, base64_decode($key), true));
Run Code Online (Sandbox Code Playgroud)
我在Google Apps脚本中的代码是:
key = "a2V5"; // this is "key" base64-encoded
value = "test";
result = Utilities.base64Encode(Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, value, Utilities.base64Decode(key)));
Run Code Online (Sandbox Code Playgroud)
我希望收到的输出是:
KHoPuJp/vfpbVThjaRjlN6W4MGXk/zMSaLeqoRXd4EepsPT7W4KGCPwLYyfxAFX3Y3sFjp4Nu55piQGj5t1GHA==
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
mGXJ3X/nH5ZIFUAPtf1PsViY50pD3cfU7J8w2KAIEAqrAgZ3dpKcuy5V1yvH4/C5n1C9rFFsKc2JKHTwUqPscQ==
Run Code Online (Sandbox Code Playgroud)
我搞砸了什么?