我一直在按照以下教程将我的应用程序与Facebook集成. Facebook教程
我已经按照教程中的所有内容进行了操作,但是我遇到applicationId cannot be null
了两个案例,而且非常令人沮丧.
我FacebookActivity
onCreate
有以下内容,与教程完全相同:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
uiHelper = new UiLifecycleHelper(this, callback);
uiHelper.onCreate(savedInstanceState);
setContentView(R.layout.main_fb);
FragmentManager fm = getSupportFragmentManager();
fragments[SPLASH] = fm.findFragmentById(R.id.splashFragment);
fragments[SELECTION] = fm.findFragmentById(R.id.selectionFragment);
FragmentTransaction transaction = fm.beginTransaction();
for(int i = 0; i < fragments.length; i++)
{
transaction.hide(fragments[i]);
}
transaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试显示我得到的活动时applicationId cannot be null
,LogCat指向的行是:uiHelper.onCreate(savedInstanceState);
然后我尝试评论该行,并显示活动.但是现在当我点击它时LoginButton
,我得到了相同的错误,但这次是指向facebook中的LoginButton类中的applicationId字段.
我已经在我的字符串值和我的清单中有Id,如下所示:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/APP_ID"/>
Run Code Online (Sandbox Code Playgroud)
我尝试使用代码获取Id,但没有任何改变.
究竟是什么造成了这一切?
我为我正在做的项目创建了一个网站.在网站的内容中,有一些可以访问的外部网页链接.在用户点击其中一个链接的同时,他将被带到指定的链接,并且他将不再在当前页面上.我想要做的是当用户点击链接时,点击链接中的指定网站会显示在新标签中.这样,用户就可以保持当前页面,也可以在新选项卡上查看其他页面.
我在网上看了一下,发现这似乎很有用:
function externalLinks()
{
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++)
{
var anchor = anchors[i];
if(anchor.getAttribute("href"))
anchor.target = "_blank";
}
}
window.onload = externalLinks;
Run Code Online (Sandbox Code Playgroud)
我面临的问题是我网站的导航栏包含锚标签.所以,现在如果用户点击导航栏上的链接,它将打开一个新选项卡.我希望只有当用户点击我网站内容中的链接时才会发生这种情况.因此,如果用户单击导航栏中的链接,则不应打开新选项卡,只应将他带到指定目的地.
我已经尝试将内容添加到内容中的所有链接并使用getElementByClassName,但它仍然无法正常工作
任何人都可以帮助我
对不起,如果这个问题听起来很愚蠢,但我刚刚开始学习C++,并且有些事让我感到困惑.
我一直在阅读C++ Primer(我发现它是一本非常好的学习C++的书),并且在放置新部分中给出了一个例子.该示例使用char数组为placement new提供内存空间
const int BUF = 512;
const int N = 5;
char buffer[BUF];
double * pd1;
pd1 = new (buffer) double[N];
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么使用char数组为新的位置提供内存空间?上面代码中的最后一行是为double数组分配内存,当原始内存空间包含char数组时,这怎么可能?如果placement new正在使用char数组的内存空间,这是否意味着当我们分配double数组时它会覆盖该内存中的char数组?
如果问题很奇怪,再次对不起,但希望我已经说清楚了.
我正在尝试使用jest
由@nrwl/nx
. 我已经按照这篇文章将我的应用程序从使用转换karma
为jest
.
我遇到的问题是,即使我的测试通过了,由于某种原因,控制台中会显示以下错误:
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Error: connect ECONNREFUSED 127.0.0.1:80
at Object.dispatchError (\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:65:19)
at Request.client.on.err (\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:676:20)
at Request.emit (events.js:187:15)
at Request.onRequestError (\node_modules\request\request.js:881:8)
at ClientRequest.emit (events.js:182:13)
at Socket.socketErrorListener (_http_client.js:391:9)
at Socket.emit (events.js:182:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19) undefined
Run Code Online (Sandbox Code Playgroud)
我只有一项测试,即:
import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { RouterTestingModule } from '@angular/router/testing';
import { CommonUtilsModule } from '@lib/common-utils';
describe('AppComponent', () => …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Dapper
我的驱动程序查询表ODBC
。我尝试运行的特定查询需要返回值大于DateTime
传递给查询的参数的行。
这是我尝试过的:
string delta = "05/02/2019 08:41:37";
DateTime deltaDt = DateTime.Parse(delta);
using (IDbConnection connection = new OdbcConnection(/**Connection string**/))
{
connection.Open();
try
{
string query = "SELECT * FROM MyTable WHERE Date > @Delta";
IEnumerable<object> records = connection.Query<object>(query, new { Delta = deltaDt });
Console.WriteLine(records.Count());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,通过上述内容,我收到以下错误:
{"ERROR [22018] Cannot convert non-numeric data"}
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用IDBConnection
withoutDapper
来查看我是否只是做了不正确的事情,但是如果我只执行以下操作,查询就可以正常工作:
{"ERROR [22018] Cannot convert non-numeric data"}
Run Code Online (Sandbox Code Playgroud)
DateTime
绑定使用查询时我做错了什么吗Dapper
?据我所知,无论我使用 …
我正在阅读C++ Primer Plus书的第13章.它有一个例子,它涉及使用继承与动态内存分配,复制构造函数和重载=运算符.
调用的基类baseDMA
具有new
在构造函数中使用的私有指向char的指针.
class baseDMA
{
private:
char * label;
...
};
baseDMA::baseDMA(const char * l)
{
label = new char[std::strlen(l) + 1];
std::strcpy(label, l);
...
}
Run Code Online (Sandbox Code Playgroud)
现在当重载=
运算符时,我们删除它,label pointer
因为我们将它分配给一个新值,它将指向一个新位置.如果我们不删除它,那么我们以后将无法这样做,因为指针现在将指向不同的东西,并且此指针指向的旧位置不会被删除,并且现在没有任何指向它(这是作者如何在另一章解释它)
这是=
基类的重载运算符:
baseDMA & baseDMA::operator=(const baseDMA & rs)
{
if (this == &rs)
return *this;
delete [] label;
label = new char[std::strlen(rs.label) + 1];
std::strcpy(label, rs.label);
return *this;
}
Run Code Online (Sandbox Code Playgroud)
接下来,作者定义了一个名为hasDMA的派生类,该类也new
用于pointer-to-char
他定义的以下内容:
class hasDMA :public baseDMA
{
private:
char …
Run Code Online (Sandbox Code Playgroud) 我遇到了一个算法问题.请为我提出一些针对以下问题的有效算法.
问题是
查找数量的子数组,其总和可以被给定的数字整除.
我的工作
我做了一个算法,其复杂度为O(N ^ 2),这里,N =数组的大小.
我的守则
#include<stdio.h>
using namespace std;
main() {
int N;
int P;
int T;
int val;
long long int count = 0;
long long int answer = 0;
scanf("%d", &T);
//T = 20;
for(int k = 1; k <= T; k++) {
scanf("%d", &N);
scanf("%d", &P);
count = 0;
answer = 0;
for(int i = 0; i < N; i++) {
scanf("%d", &val);
count += val;
workingArray[i] = count;
}
for(int length = …
Run Code Online (Sandbox Code Playgroud) 我一直在学习C++,而且我目前正在练习课程.我创建了一个存储播放器名称和分数的类,并定义了操作数据并显示它的函数.
我创建的一个功能是比较两个玩家的得分并返回指向具有较高得分的玩家的指针.这是功能:
Player * Player::highestScore(Player p2)const
{
if(p2.pScore>pScore)
{
return &p2;
}
else
{
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
从主要我创建以下球员:
Player p1("James Gosling",11);
Player *p4 = new Player("Bjarne Stroustrup",5);
Run Code Online (Sandbox Code Playgroud)
我称之为最高分数函数:
Player *highestScore = p1.highestScore(*p4);
Run Code Online (Sandbox Code Playgroud)
但是,您可能已经注意到从函数本身读取,当我将指针返回到调用该方法的对象时(如果它具有更高的分数),我得到一个错误,指出:
return value type does not match the function type
Run Code Online (Sandbox Code Playgroud)
当我将函数的返回类型声明为a时const
,这个问题似乎消失了,如下所示:
const Player * Player::highestScore(Player p2)const
Run Code Online (Sandbox Code Playgroud)
令我困惑的部分是为什么它允许我return &p2
,哪些不是const
,也不允许我返回this
,这是一个指向调用该函数的对象的指针,这不是一个const
好的?即使我将函数返回类型声明为const,它仍然允许我return &p2
,即使传递给参数的参数不是const Player对象?
对不起,如果这个问题看起来很奇怪,或者我正在尝试做的是非常糟糕的编程,但这只是为了通过这样做来学习.
我一直在使用ArrayList为我的项目存储板球队员并订购它们.我开始考虑使用TreeSet,因为它具有删除重复项的优点.但是我遇到的问题是,如果我创建以下两个玩家:
P p1 = new P("Jack","Daniel",33(age),180(height),78(weight),41(games played),2300
(runs scored),41(dismisses))
P p2 = new P("Jack","Daniel",37(age),185(height),79(weight),45(games played),2560
(runs scored),45(dismisses))
Run Code Online (Sandbox Code Playgroud)
请注意,这两个玩家的名字和名字相同,但其他一切都不同.当我尝试将这两个播放器添加到TreeSet时,它认为它们是重复的,因为名称相似并删除了第二个.显然我不希望这种情况发生,我希望Set只有当他拥有的东西与另一个玩家相同时才移除玩家,而不仅仅是名字和姓氏.
有没有办法实现这个目标?
我的TreeSet还有一个Player对象.
我刚刚用移动语义做了一些练习,我似乎无法弄清楚为什么我的移动赋值操作符没有被调用
我的课程如下(请忽略与问题无关的任何不良做法):
private:
int sz;
double* elems;
public:
Vector(int size):sz(size), elems(new double[size])
{
for(int i=0; i!=sz; ++i)
{
elems[i] = i;
}
}
~Vector()
{
std::cout << "Destruct " << std::endl; delete [] elems;
}
double& operator[](int i)
{
return elems[i];
}
const double& operator[](int i)const
{
return elems[i];
}
//operator+ to add vectors
friend Vector operator+(const Vector& a, const Vector& b)
{
Vector ret(a.sz);
if(a.sz!=b.sz)
return 0;
std::cout << "Adding" << std::endl;
for(int i=0; i!=a.sz; ++i)
{
ret[i] = …
Run Code Online (Sandbox Code Playgroud) 我一直SQLite
在我的应用程序中使用来存储一些要在应用程序中使用的数据.我面临的问题是,如果让我说今天用一些数据填充表格并在应用程序中显示它们,数据仍然存在并且不会丢失.
然而,当我第二天来到并尝试显示我前一天输入的数据时,数据似乎已经丢失(或者可能整个database/tables
都被重新创建,我不太确定)
我写的方式database
如下:
public class CustomExercisesDB
{
private static final String DB_NAME = "app";
private static final int DB_VERSION = 15;
private static final String ChosenExercises = "ChosenCustExs";
public static final String ChEX_ID = "ChExId";
public static final String Cust_NAME = "CustomName";
public static final String ChEx_NAME = "ChExName";
public static final String ChEx_Weight = "ChExWeight";
public static final String ChEx_Reps = "ChExReps";
public static final String ChEx_Sets = "ChExSets";
private DBHelper …
Run Code Online (Sandbox Code Playgroud)