phabricator svn怎样解锁应用

代码审核工具Phabricator的安装_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
代码审核工具Phabricator的安装
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
你可能喜欢当前位置:&&
本页文章导读:
&&&&?新版新浪微博api使用有关问题及相关解决方法 &&&&&& 新版新浪微博api使用问题及相关解决办法
1.导入demo 工程后,工程报错。控制台的错误信息:Unable to resolve target 'android-4'。
问题原因:sdk版本不符,文件内所写的版本过低
解决办法:修改工......&&&&? contentprovider-读取写下联系人数据 &&&&&& contentprovider--读取写入联系人数据
本文主要使用contentprovider实现读取写入联系人数据,初步学习contentprovider的用法,摘自李刚的《疯狂android》contentprovider是不同应用程序之间进行数据交换......&&&&? Ubuntu/Debian停安装Phabricator&&&&&& Ubuntu/Debian下安装Phabricator
Installation:(出于简单考虑,这里不包含配置apache的环节,因此直接把phabricator安装到apache的/var/www,可参考phabricator docs进行更多配置)1. 如果sudo不能使用,则先......
&&&&&&最新IT科技资讯推荐:
[1]新版新浪微博api使用有关问题及相关解决方法
&&&&来源:&互联网& 发布时间:&
新版新浪微博api使用问题及相关解决办法
1.导入demo 工程后,工程报错。控制台的错误信息:Unable to resolve target 'android-4'。
问题原因:sdk版本不符,文件内所写的版本过低
解决办法:修改工程目录下的project.properties文件里的内容target=android-4数字改成你机器里装过的android SDK版本就可以了。
另外还有修改AndroidManifest.xml里的android:minSdkVersion="4"
2.将demo工程导入Eclipse后,按开发手册所言将weibo.sdk.android.sso.jar放在libs下,启动工程时报错如下
Unable to execute dex: Multiple dex files define Landroid/net/http/SslE
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/net/http/SslE
问题原因:导入的jar包是双份sdk高版本出现这个问题。官方Demo不用导入weibo.sdk.android.sso.jar这个包。
在工程weibo.sdk.android.sso.demo中已经包含了weibo.sdk.android.sso.jar的源代码。
解决办法:删掉libs下的weibo.sdk.android.sso.jar文件
3.导入工程后,中文乱码
问题原因:默认编码格式与文件格式不符
解决办法:在工程文件夹上右键选择Properties,然后再Resources下的text file encoding选择other-&UTF-8
4.导入工程后AndroidManifest.xml文件里报错,
&uses-permission android:name="android.permission.WRITE_APN_SETTINGS" /&
问题原因:我不知道
解决办法:project-&clean。若以后还出现这个问题,则再clean
5.运行工程后,进行认证过程中程序崩溃
问题原因之一:demo里有个apiBtn 代码多余 一共两处 注释掉就好了
解决办法:注释掉就好了 //apiBtn.setVisibility(View.VISIBLE);
来自:/orange-tree/archive//2958211.html
[2] contentprovider-读取写下联系人数据
&&&&来源:&互联网& 发布时间:&
contentprovider--读取写入联系人数据
本文主要使用contentprovider实现读取写入联系人数据,初步学习contentprovider的用法,摘自李刚的《疯狂android》contentprovider是不同应用程序之间进行数据交换的标准API,contentprovider以某种Uri的形式对外提供数据,允许其他应用访问或修改数据;其他应用程序使用contentresolver根据Uri去访问操作指定数据。如果把contentprovider当成一个“网站”来看,那木如何完整开发一个contentprovider呢?步骤很简单:1.定义自己的contentprovider类,该类需要继承android提供的contentprovider基类。2.想android系统注册这个“网站”,也就是早androidmanifest.xml文件中注册这个contentprovider,就像注册activity一样,注册contentprovider时需要为它绑定一个域名。android系统提供了contacts应用程序来管理联系人,而且android系统还为联系人管理提供contentprovider,这就允许其他应用程序以contentprovider来管理联系人数据。android系统对联系人管理contentprovider的几个Uri如下ContactsContract.Contract.CONTENT_Uri:管理联系人的UrimonDataKinds.Phone.CONTENT_URI:管理联系人的电话的Uri.monDataKinds.Email.Content_URI: 管理联系人的E-mail的Uri知道联系人管理contentprovider的Uri之后,接下来就可在应用程序中通过contentresolver去操作系统的联系人数据了。下面示例程序中包含两个按钮,一个按钮用于查询系统的联系人数据,一个按钮用于添加插入联系数据,具体代码如下:1. main布局文件,由于测试学习使用,没有具体设计布局样式
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" &
android:id="@+id/querybtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="query"/&
android:id="@+id/addbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="add"/&
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"/&
android:id="@+id/phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"/&
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"/&
&/LinearLayout&
2.result布局文件
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" &
&ExpandableListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"/&
&/LinearLayout&
3.实现代码如下:
import java.util.ArrayL
import android.app.A
import android.app.AlertD
import android.content.ContentU
import android.content.ContentV
import android.database.C
import android.net.U
import android.os.B
import android.provider.ContactsC
import android.monDataKinds.E
import android.monDataKinds.P
import android.monDataKinds.StructuredN
import android.provider.ContactsContract.Contacts.D
import android.provider.ContactsContract.RawC
import android.view.G
import android.view.V
import android.view.View.OnClickL
import android.view.ViewG
import android.widget.AbsListV
import android.widget.BaseExpandableListA
import android.widget.B
import android.widget.EditT
import android.widget.ExpandableListA
import android.widget.ExpandableListV
import android.widget.TextV
import android.widget.T
public class MainActivity extends Activity {
private Button querybtn,
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
querybtn = (Button)findViewById(R.id.querybtn);
addbtn = (Button)findViewById(R.id.addbtn);
querybtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//定义两个LIST来封装系统的联系人信息、指定联系人的电话号码,email等详情
final ArrayList&String& names = new ArrayList&String&();
final ArrayList&ArrayList&String&& details = new ArrayList&ArrayList&String&&();
//使用contentresolver查找联系人的数据
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
while(cursor.moveToNext()){
//获取联系人ID
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
names.add(name);
//使用contentresolver查找联系人的电话号码
Cursor phones = getContentResolver().query(
monDataKinds.Phone.CONTENT_URI,
monDataKinds.Phone.CONTACT_ID + "=" + contactId,
null, null);
ArrayList&String& detail = new ArrayList&String&();
//遍历查询结果,获取该联系人的多个电话号码
while(phones.moveToNext()){
String phoneNumber = phones.getString(phones.
getColumnIndex(ContactsContract.
CommonDataKinds.Phone.NUMBER));
detail.add("电话号码:" + phoneNumber);
phones.close();
//使用contentresolver查找联系人的email的地址
Cursor emails = getContentResolver().query(
monDataKinds.Email.CONTENT_URI,
monDataKinds.Email.CONTACT_ID + "=" + contactId,
null, null);
while(emails.moveToNext()){
String emailAdddress = emails.getString(emails
.getColumnIndex(ContactsContract
.CommonDataKinds.Email.DATA));
detail.add("邮件地址:" + emailAdddress);
emails.close();
details.add(detail);
cursor.close();
//加载result.xml界面布局代表的视图
View resultDialog = getLayoutInflater().inflate(
R.layout.result, null);
//获取resultDialog中ID 为list的ExpandableListView
ExpandableListView list = (ExpandableListView)resultDialog.findViewById(R.id.list);
ExpandableListAdapter adapter = new BaseExpandableListAdapter() {
public Object getChild(int groupPosition, int childPosition) {
return details.get(groupPosition).get(childPosition);
public long getChildId(int groupPosition, int childPosition) {
return childP
public View getChildView(int groupPosition,
int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
TextView textView = getTextView();
textView.setText(getChild(groupPosition, childPosition).toString());
return textV
public int getChildrenCount(int groupPosition) {
return details.get(groupPosition).size();
public Object getGroup(int groupPosition) {
return names.get(groupPosition);
public int getGroupCount() {
return names.size();
public long getGroupId(int groupPosition) {
return groupP
public View getGroupView(int groupPosition,
boolean isExpanded, View convertView,
ViewGroup parent) {
TextView textView = getTextView();
textView.setText(names.get(groupPosition).toString());
return textV
public boolean hasStableIds() {
public boolean isChildSelectable(int groupPosition,
int childPosition) {
private TextView getTextView(){
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView textView = new TextView(MainActivity.this);
textView.setLayoutParams(lp);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
textView.setTextSize(20);
return textV
list.setAdapter(adapter);
new AlertDialog.Builder(MainActivity.this)
.setView(resultDialog)
.setPositiveButton("确定", null)
addbtn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String name = ((EditText)findViewById(R.id.name)).getText().toString();
String phone = ((EditText)findViewById(R.id.phone)).getText().toString();
String email = ((EditText)findViewById(R.id.email)).getText().toString();
//创建一个空的contentvalues
ContentValues values = new ContentValues();
//向rawContacts.Content_URI执行一个空值插入,目的是获取系统返回的rawContactId
Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
//设置内容类型
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
//设置联系人的名字
values.put(StructuredName.GIVEN_NAME, name);
//向联系人Uri添加联系人名字
getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
//设置联系人的电话号码
values.put(Phone.NUMBER, phone);
//设置电话类型
values.put(Phone.TYPE, Phone.TYPE_MOBILE);
//向联系人电话号码Uri添加电话号码
getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
//设置联系人的email地址
values.put(Email.DATA, email);
//设置该电子邮件的类型
values.put(Email.TYPE, Email.TYPE_WORK);
//向联系人email uri添加email数据
getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
Toast.makeText(MainActivity.this, "联系人数据添加成功", Toast.LENGTH_SHORT).show();
上面程序需要读取、添加联系人信息,因此需要在androidmanifest.xml中为该应用程序授权&uses-permission android:name="android.permission.READ_CONTACTS"/&&uses-permission android:name="android.permission.WRITE_CONTACTS"/&项目代码见附件
[3] Ubuntu/Debian停安装Phabricator
&&&&来源:&互联网& 发布时间:&
Ubuntu/Debian下安装Phabricator
Installation:(出于简单考虑,这里不包含配置apache的环节,因此直接把phabricator安装到apache的/var/www,可参考phabricator docs进行更多配置)1. 如果sudo不能使用,则先su切换到root,然后安装sudo,apt-get install sudo2. wget /rsrc/install/install_ubuntu.shcp install_ubuntu.sh /var/wwwcd /var/wwwchmod +x install_ubuntu.sh./install_ubuntu.sh3. vim /etc/apache2/sites-enabled/000-default 把两处:/var/www 改为 /var/www/phabricator/webroot DocumentRoot /var/www/phabricator/webroot RewriteEngine on
RewriteRule ^/rsrc/(.*)
RewriteRule ^/favicon.ico
RewriteRule ^(.*)$
/index.php?__path__=$1
[B,L,QSA]4. /etc/init.d/apache2 restart5. cd phabricator./bin/storage upgrade完成,可web登录,并开始configuration:1. ./bin/accountadmin 设置用户2. ./bin/config set phabricator.base-uri 'http://192.168.15.129/'
设置base uri3.
vim /etc/php5/apache2/php.ini/timezone找到date.timezone并设置为:date.timezone = Asia/Shanghai /etc/init.d/apache2 restart4. 运行daemon:./bin/phd start5. 配置mail:通过web访问phabricator并在页面上进行配置:(这里使用的是外部SMTP server的方式,更多方式参见phabricator docs)用administrator账号登录后,在administration栏选择Config进入1)选择mail,设置:metamta.default-address
// 注意:这里必须要用与smtp服务器对应的邮箱地址,不然邮件发不出去metamta.domain --
// 随意metamta.mail-adapter: set to "PhabricatorMailImplementationPHPMailerAdapter"metamta.send-immediately: Send Via Daemons2)选择PHPMailer,设置:(以的SMTP server为例)phpmailer.mailer: set to "smtp".phpmailer.smtp-host:
phpmailer.smtp-port: 25phpmailer.smtp-user: xxxxphpmailer.smtp-password: xxxx配置完毕后,可以在Administration-MetaMTA下进行发送邮件的测试,注意需要添加一个User组用户,无法直接向System Agent组用户发送邮件6. 添加代码库:Administration内选择Repositories,点击Create New Repository,可选择Git或SubVersion类型的代码库,Name是库名称,Callsign用于作为所有revision commit的前缀使用,一般用短小的全大写。创建完毕后,在tracking内配置跟踪参数,填写remote url(代码库地址),配置代码库在服务器上保存的路径local path:比如/home/username/git,然后再根据情况填写用户名,密码一般就可以了。保存后,phabricator后台会自动tracking代码库的更改情况。至此,phabricator可以基本使用了,其他工具如arcnist等使用及配置可参照phabricator文档,大部分配置都可以直接使用administrator账号在web网页上进行。
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)| 全部问题
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
来自子话题:
已有帐号?
无法登录?
社交帐号登录phabricator配置及使用文档_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
phabricator配置及使用文档
上传于||文档简介
&&目​前​只​支​持​本​地​S​V​N​(​即​s​v​n​库​与​p​h​a​b​r​i​c​a​t​o​r​在​同​一​I​P​)​与​远​程​S​V​N​,​本​地​G​I​T​支​持​
​邮​件​通​知​功​能​未​调​通​。
阅读已结束,如果下载本文需要使用5下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
你可能喜欢}

我要回帖

更多关于 phabricator 使用教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信