我正在尝试使用构建口味.在我的build.gradle中,我定义了两种口味,一种正常的味道和一种管理风味.
基本上,admin flavor在主活动上有一个额外的按钮.
我知道我可以为不同的风格定义不同的包/类.但有没有办法根据风味添加/删除一段代码?
基本上我需要两个版本的Activity.但我不想要两个完整不同版本的活动并维护它们.
所以在我的活动中我想做
=> gradle检查味道是否为'admin'=>如果是,则添加该按钮的代码
这可能吗?或者您是否需要两种不同的物理活动,因此在您之后添加功能时可以维护它们.
我正在尝试实现一些清理工具。由于某些“安全原因”,越来越多的制造商禁止生根设备,禁止不要求解锁。
API 28 之后,此代码将出错:
ActivityCompat.requestPermissions(this, new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, 1); // Request permission or not, Will got same result
File rootFolder = Environment.getExternalStorageDirectory(); // That is working fine
rootFolder.listFiles(); // That will return null
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用这个:
android:requestLegacyExternalStorage="true"
Run Code Online (Sandbox Code Playgroud)
但我相信将来会被杀死。
那么,有什么优雅的方式来管理 SDCard 吗?
android android-permissions android-external-storage android-10.0
对于一个应用程序,我需要能够创建一个多用户聊天室并加入它.聊天服务器是一个openfire服务器.
我曾经有过:
MultiUserChat chat = new MultiUserChat(connection, roomName + "@conference.localhost");
chat.join(nickname);
Run Code Online (Sandbox Code Playgroud)
当房间不存在时,它会创建房间并加入.但是下一个用户无法加入.他得到了404,收件人不可用(404).这表明聊天室被锁定了什么.
然后我在文档中找到了代码并尝试了以下内容:
chat.create(nickname);
// Send an empty room configuration form which indicates that we want
// an instant room
chat.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试执行此操作时,它说它在logcat中崩溃并出现以下错误:
03-02 12:04:12.890: E/AndroidRuntime(20872): FATAL EXCEPTION:
AsyncTask #3 03-02 12:04:12.890: E/AndroidRuntime(20872):
java.lang.RuntimeException: An error occured while executing
doInBackground()
03-02 12:04:12.890: E/AndroidRuntime(20872): Caused
by: java.lang.ClassCastException:
org.jivesoftware.smack.packet.DefaultPacketExtension cannot be cast to
org.jivesoftware.smackx.packet.MUCUser 03-02 12:04:12.890:
E/AndroidRuntime(20872): at
org.jivesoftware.smackx.muc.MultiUserChat.getMUCUserExtension(MultiUserChat.java:2002)
03-02 12:04:12.890: E/AndroidRuntime(20872): at
org.jivesoftware.smackx.muc.MultiUserChat.create(MultiUserChat.java:364)
03-02 12:04:12.890: E/AndroidRuntime(20872): at
be.xios.crs.pivi.managers.XmppManager.createOrJoinChatGroup(XmppManager.java:116)
Run Code Online (Sandbox Code Playgroud)
希望有人可以帮助我,并提供一些建议.
我正在尝试使用Java Google Calendar api连接到日历.Java应用程序使用服务帐户.
我有以下代码:
java.io.File licenseFile = new java.io.File("39790cb51b361f51cab6940d165c6cda4dc60177-privatekey.p12");
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("xxx@developer.gserviceaccount.com")
.setServiceAccountUser(EMAIL_ADRESS)
.setServiceAccountScopes(CalendarScopes.CALENDAR)
.setServiceAccountPrivateKeyFromP12File(licenseFile)
.build();
client = new com.google.api.services.calendar.Calendar.Builder(
HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName("Google Calendar Sync").build();
Calendar calendar = client.calendars().get(EMAIL_ADRESS).execute();
Run Code Online (Sandbox Code Playgroud)
在最后一行,我收到一条带有消息的IOException:
ex =(com.google.api.client.auth.oauth2.TokenResponseException)com.google.api.client.auth.oauth2.TokenResponseException:400 Bad Request {"error":"access_denied"}
我dubble检查了GoogleCredential对象的值,它们是正确的.我还添加了https://www.google.com/calendar/feeds/,http://www.google.com/calendar/feeds/与应用程序ID为我的客户域控制台授权第三方应用访问
我忘记了一步吗?
java google-calendar-api google-api google-apps google-api-java-client
目前它是主要活动,但我想将其更改为Categories活动.这是问题所在吗?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
// more details, see the Navigation pattern on Android Design:
//
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
//
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
Run Code Online (Sandbox Code Playgroud) 我试图将Core Data添加到我现有的iOS项目中.我没有现有的sql数据库,但我创建了一个数据模型.我按照以下教程:http://wiresareobsolete.com/wordpress/2009/12/adding-core-data-existing-iphone-projects/
它会在以下代码中产生错误:
(NSPersistentStoreCoordinator *) persistentStoreCoordinator{
if (persistentStoreCoordinator != nil){
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentDirectory]
stringByAppendingPathComponent: @"MyPOC.sqlite"]];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]){
NSLog(@"Unresolved error OH NO %@, %@", error, [error userInfo]);
}
return persistentStoreCoordinator;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
2012-10-25 13:52:29.156 MyPOC[1994:11603] Unresolved error OH NO Error
Domain=NSCocoaErrorDomain Code=512 "The operation couldn’t be completed.
(Cocoa error 512.)" UserInfo=0x8246240 {reason=Failed to create file; code …Run Code Online (Sandbox Code Playgroud) 我正在尝试访问Google 联系人 API,但我的尝试在获得授权时已失败。在其他(网络)语言中,我习惯了 APIConsole 和公共 API 密钥(授权)。
GoogleCredential credential = new GoogleCredential().setAccessToken("<<PublicAPIKey>>");
System.out.println(credential.refreshToken()); // false
Run Code Online (Sandbox Code Playgroud)
这样我就无法刷新令牌并且不确定是否使用公钥作为访问令牌......相反,我尝试了服务帐户:
private static final String USER_ACCOUNT_EMAIL = "xy@gmail.com";
private static final String SERVICE_ACCOUNT_EMAIL = "xy@developer.gserviceaccount.com";
private static final String SERVICE_ACCOUNT_PKCS12_FILE_PATH = "xy.p12";
public App() {
Set<String> scopes = new HashSet<String>();
scopes.add("https://www.google.com/m8/feeds");
try {
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(new NetHttpTransport())
.setJsonFactory(new JacksonFactory())
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(scopes)
.setServiceAccountUser(USER_ACCOUNT_EMAIL)
.setServiceAccountPrivateKeyFromP12File(new java.io.File(SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.build();
System.out.println(credential.refreshToken());
//System.out.println(credential.getAccessToken());
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (IOException …Run Code Online (Sandbox Code Playgroud) java authorization google-api google-api-java-client google-oauth
我有这个网页,显示了几个品牌标识.
我注意到谷歌Chrome和Firefox没有问题,但IE没有显示我的所有图片.
即使我转到图像的直接链接,IE也不会打开某些图片,而Google Chrome或FireFox会打开这些图片.
以下图片无法通过IE打开,但在Chrome/FireFox中打开:
http://juniorsteps.mediaspex.be/sites/default/files/logos/develab.jpg
我无法弄清楚为什么会这样.
我在nodejs应用程序中创建其余端点,如下所示:
在我的server.js中,我有以下代码:
var express = require('express');
var app = express();
app.use(express.json({ limit: '50mb' }));
app.use(express.urlencoded({ limit: '50mb', extended: true }));
app.use(require('./routes/APIRoutes'));
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下代码,而不是按照潜在重复问题的建议使用express.json和expres.urlencoded。
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(require('./routes/APIRoutes'));
Run Code Online (Sandbox Code Playgroud)
在我的APIRoutes文件中,我有以下代码:
/* --- INIT --- */
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
router.use(bodyParser.json({ limit: '50mb' }));
router.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
var urlencodedParser = bodyParser.urlencoded({ limit: '50mb', extended: true });
router.post('...', urlencodedParser, …Run Code Online (Sandbox Code Playgroud) 我刚刚将我的drupal站点移动到另一个域/主机
我移动了数据库,现在我的所有网站.但是当我访问网站(juniorsteps.be)时,我得到以下异常:
PDOException:SQLSTATE [HY000] [2013]在'读取初始通信数据包'时失去与MySQL服务器的连接,系统错误:111在lock_may_be_available()中(/ home/sites/webhosting/juniorsteps/juniorsteps/www/includes/lock的第165行) .公司).
我用谷歌搜索了它,但我仍然没有找到解决方案.
希望有人能提供帮助.
UPDATE
正如从线上问的代码.这是以下功能的第一行:
function lock_may_be_available($name) {
$lock = db_query('SELECT expire, value FROM {semaphore} WHERE name = :name', array(':name' => $name))->fetchAssoc();
if (!$lock) {
return TRUE;
}
$expire = (float) $lock['expire'];
$now = microtime(TRUE);
if ($now > $expire) {
// We check two conditions to prevent a race condition where another
// request acquired the lock and set a new expire time. We add a small
// number to $expire to avoid errors …Run Code Online (Sandbox Code Playgroud)