gpt4 book ai didi

java - ExceptionInInitializerError - 服务和库

转载 作者:行者123 更新时间:2023-11-29 05:16:46 25 4
gpt4 key购买 nike

我在尝试运行我的应用程序时意外遇到了 ExceptionInIntiialize 错误。我相信当用户点击快速聊天按钮时会提示错误。

10-09 18:27:08.450: E/AndroidRuntime(999): FATAL EXCEPTION: main
10-09 18:27:08.450: E/AndroidRuntime(999): java.lang.ExceptionInInitializerError
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.client.ServiceFactory.createUserAgent(ServiceFactory.java:44)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.client.DefaultSinchClient.<init>(DefaultSinchClient.java:157)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.client.InternalSinchClientFactory.createSinchClient(InternalSinchClientFactory.java:14)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.DefaultSinchClientBuilder.build(DefaultSinchClientBuilder.java:95)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.dooba.beta.MessageService.startSinchClient(MessageService.java:56)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.dooba.beta.MessageService.onStartCommand(MessageService.java:40)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2490)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread.access$1900(ActivityThread.java:130)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.os.Handler.dispatchMessage(Handler.java:99)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.os.Looper.loop(Looper.java:137)
10-09 18:27:08.450: E/AndroidRuntime(999): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.reflect.Method.invokeNative(Native Method)
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.reflect.Method.invoke(Method.java:511)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-09 18:27:08.450: E/AndroidRuntime(999): at dalvik.system.NativeStart.main(Native Method)
10-09 18:27:08.450: E/AndroidRuntime(999): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load sinch-android-rtc: findLibrary returned null
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.Runtime.loadLibrary(Runtime.java:365)
10-09 18:27:08.450: E/AndroidRuntime(999): at java.lang.System.loadLibrary(System.java:535)
10-09 18:27:08.450: E/AndroidRuntime(999): at com.sinch.android.rtc.internal.natives.jni.UserAgentFactory.<clinit>(UserAgentFactory.java:9)

代码如下:下面是代码:

public class matchOptionActivity1 extends Activity{

protected TextView mUserRetrieved;
private String currentUserId;

protected TextView mUserActivityNameRetrieved;
protected TextView mUserNameRetrieved;
protected TextView mUserAgeRetrieved;
protected TextView mUserHeadlineRetrieved;
String userGender = ParseUser.getCurrentUser().getString("Gender");
String activityName = ParseUser.getCurrentUser().getString("ActivityName");
Number maxDistance = ParseUser.getCurrentUser().getNumber(
"Maximum_Distance");
String userLookingGender = ParseUser.getCurrentUser().getString(
"Looking_Gender");
Number minimumAge = ParseUser.getCurrentUser().getNumber("Minimum_Age");
Number maximumAge = ParseUser.getCurrentUser().getNumber("Maximum_Age");
Number userage = ParseUser.getCurrentUser().getNumber("UserAge");
private FeedbackDialog feedBack;
private ProgressDialog progressDialog;
private BroadcastReceiver receiver;
private MessageService.MessageServiceInterface sinchService;
private Boolean bound = false;

private Intent intent;
private Intent serviceIntent;



@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.matchoption);



feedBack = new FeedbackDialog(this, "AF-46D8F2A319EA-0A");
ParseQuery<ParseUser> query = ParseUser.getQuery();

// query.whereEqualTo("ActivityName",userActivitySelectionName);

query.whereNotEqualTo("objectId", ParseUser.getCurrentUser()
.getObjectId());
// users with Gender = currentUser.Looking_Gender
query.whereEqualTo("Gender", userLookingGender);
// users with Looking_Gender = currentUser.Gender
query.whereEqualTo("Looking_Gender", userGender);
query.setLimit(1);
// query2.whereEqualTo("UserMatchedRequest1", "confirmed");
query.whereEqualTo("ActivityName", activityName);
query.whereGreaterThanOrEqualTo("UserAge", minimumAge);
query.whereLessThanOrEqualTo("UserAge", maximumAge);

ParseQuery<ParseUser> query2 = ParseUser.getQuery();

// query.whereEqualTo("ActivityName",userActivitySelectionName);

query2.whereNotEqualTo("objectId", ParseUser.getCurrentUser()
.getObjectId());
// users with Gender = currentUser.Looking_Gender
query2.whereEqualTo("Gender", userLookingGender);
// users with Looking_Gender = currentUser.Gender
query2.whereEqualTo("Looking_Gender", userGender);
query2.setLimit(1);
// query2.whereEqualTo("UserMatchedRequest1", "confirmed");
query2.whereEqualTo("ActivityName", activityName);
query2.whereGreaterThanOrEqualTo("UserAge", minimumAge);
query2.whereLessThanOrEqualTo("UserAge", maximumAge);

query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects,ParseException e) {

for(int i=0;i<objects.size();i++){
// Do whatever you need to extract object from "users"
ParseQuery<ParseObject> query = ParseQuery.getQuery("User");
query.whereNotEqualTo("objectId", ParseUser.getCurrentUser()
.getObjectId());
// users with Gender = currentUser.Looking_Gender
query.whereEqualTo("Gender", userLookingGender);
// users with Looking_Gender = currentUser.Gender
query.whereEqualTo("Looking_Gender", userGender);
query.setLimit(1);
// query2.whereEqualTo("UserMatchedRequest1", "confirmed");

query.whereEqualTo("ActivityName", activityName);
query.whereGreaterThanOrEqualTo("UserAge", minimumAge);
query.whereLessThanOrEqualTo("UserAge", maximumAge);

mUserNameRetrieved = (TextView) findViewById(R.id.tvmname1);

mUserNameRetrieved.setText(objects.get(i).get("Name").toString());



}
}//for loop
});

query2.findInBackground(new FindCallback<ParseUser>() {

@Override
public void done(List<ParseUser> objects,ParseException e) {

for(int i=0;i<objects.size();i++){
// Do whatever you need to extract object from "users"
ParseQuery<ParseObject> query2 = ParseQuery.getQuery("User");
query2.whereNotEqualTo("objectId", ParseUser.getCurrentUser()
.getObjectId());
// users with Gender = currentUser.Looking_Gender
query2.whereEqualTo("Gender", userLookingGender);
// users with Looking_Gender = currentUser.Gender
query2.whereEqualTo("Looking_Gender", userGender);
query2.setLimit(1);
// query2.whereEqualTo("UserMatchedRequest1", "confirmed");

query2.whereEqualTo("ActivityName", activityName);
query2.whereGreaterThanOrEqualTo("UserAge", minimumAge);
query2.whereLessThanOrEqualTo("UserAge", maximumAge);


ParseFile image = objects.get(i).getParseFile("ProfilePicture");


ParseImageView imageView = (ParseImageView) findViewById(R.id.profilePictureresultm);



// The placeholder will be used before and during the fetch, to be replaced by the fetched image
// data.
imageView.setPlaceholder(getResources().getDrawable(R.drawable.profile_pict));
imageView.setParseFile(image);

imageView.loadInBackground(new GetDataCallback() {
@Override
public void done(byte[] data, ParseException e) {
if (data != null) {
Log.i("ParseImageView", "Fetched: " + data.length);
} else {
Log.e("ParseImageView", "Error fetching: " + e.getMessage());
}
}


});
}
}//for loop
});




final Button ichat = (Button) this.findViewById(R.id.btnQuickChat);
ichat.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {


openConversation();


}


private void openConversation() {
// TODO Auto-generated method stub
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereNotEqualTo("objectId", ParseUser.getCurrentUser()
.getObjectId());
// users with Gender = currentUser.Looking_Gender
query.whereEqualTo("Gender", userLookingGender);
// users with Looking_Gender = currentUser.Gender
query.whereEqualTo("Looking_Gender", userGender);
query.setLimit(1);
query.whereEqualTo("ActivityName", activityName);
query.whereGreaterThanOrEqualTo("UserAge", minimumAge);
query.whereLessThanOrEqualTo("UserAge", maximumAge);


query.findInBackground(new FindCallback<ParseUser>() {
public void done(List<ParseUser> user, ParseException e) {
if (e == null) {

Intent intent = new Intent(getApplicationContext(), MessagingActivity1.class);
startService(serviceIntent);
intent.putExtra("RECIPIENT_ID", user.get(0).getObjectId());
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(),
"Error finding that user",
Toast.LENGTH_SHORT).show();
}
}
});
}
});


}



//show a loading spinner while the sinch client starts
private void showSpinner() {
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("Loading");
progressDialog.setMessage("Please wait...");
progressDialog.show();

receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Boolean success = intent.getBooleanExtra("success", false);
progressDialog.dismiss();
if (!success) {
Toast.makeText(getApplicationContext(), "Messaging service failed to start", Toast.LENGTH_LONG).show();
}
}
};

LocalBroadcastManager.getInstance(this).registerReceiver(receiver, new IntentFilter("com.dooba.beta.matchOptionActivity1"));
}

@Override
public void onResume() {

super.onResume();
}
}

图书馆所在的屏幕enter image description here

祝一切顺利

最佳答案

Caused by: java.lang.UnsatisfiedLinkError: Couldn't load sinch-android-rtc: findLibrary returned null表示 Sinch SDK 无法找到 SDK 正常工作所需的 native 二进制文件。确保您拥有完整的 libs从 Sinch SDK 复制的文件夹并确保所有 .so文件包含在最终的 APK 中。

请注意,Sinch SDK 仅支持 armeabiarmeabi-v7a目前,如果你想在 x86 上运行它设备将无法工作。

关于java - ExceptionInInitializerError - 服务和库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26286501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com