在本文中,您将会了解到关于android/mysql的评级算法的新资讯,同时我们还将为您解释mysql等级的相关在本文中,我们将带你探索android/mysql的评级算法的奥秘,分析mysql等级的
在本文中,您将会了解到关于android / mysql的评级算法的新资讯,同时我们还将为您解释mysql等级的相关在本文中,我们将带你探索android / mysql的评级算法的奥秘,分析mysql等级的特点,并给出一些关于Android Studio – 使用依赖于另一个Android库的Android库构建Android项目、Android Studio 连接到 mysql 不断崩溃、Android – Ruby on Rails – MySQL、Android – 将SQLite与MySQL同步的最佳方式的实用技巧。
本文目录一览:- android / mysql的评级算法(mysql等级)
- Android Studio – 使用依赖于另一个Android库的Android库构建Android项目
- Android Studio 连接到 mysql 不断崩溃
- Android – Ruby on Rails – MySQL
- Android – 将SQLite与MySQL同步的最佳方式
android / mysql的评级算法(mysql等级)
指导意见将得到极大的回应,并提前表示感谢.
解决方法
Android Studio – 使用依赖于另一个Android库的Android库构建Android项目
我需要使用Gradle构建一个依赖于Android库项目A的Android项目,该项目取决于另一个Android库项目B.
到目前为止,我有以下内容:
Android项目:
的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile project(':LibA')
}
android {
compileSdkVersion 7
buildToolsversion "17.0.0"
}
manifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cyborg.template"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="7" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.cyborg.template.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Android库A:
的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
dependencies {
compile project(':LibB')
}
android {
compileSdkVersion 7
buildToolsversion "17.0.0"
}
manifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lib.project.a"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="7"/>
</manifest>
Android库B:
的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
android {
compileSdkVersion 7
buildToolsversion "17.0.0"
}
manifest.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lib.project.b"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="7"/>
</manifest>
在尝试构建Android项目时,Android studio报告了以下错误:
Gradle: Execution Failed for task ':LibA:processDebugManifest'.
> Manifest merging Failed. See console for more info.
那个控制台在哪里我想搜索有关错误的更多信息?
我发现了一些关于这个错误的问题,但它似乎与我的情况不一样.
启示?
谢谢,
亚当.
解决方法:
该库的清单文件当前必须具有< application />节点,即使它是空的.
这是我们将在某些时候删除的限制,但现在,只需添加它.
Android Studio 连接到 mysql 不断崩溃
如何解决Android Studio 连接到 mysql 不断崩溃?
这是我的 MainActivity.java
我是 android studio 的新手。我尝试将 android studio 与 MysqL 连接,但是当我运行模拟器时,显示 androidapp 一直停止。我调试时,它会在 void doInBackground 处停止。我的代码有什么问题吗。
package de.vogella.MysqL.androidMysqL;
import androidx.appcompat.app.AppCompatActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class MainActivity extends AppCompatActivity {
TextView text,errorText;
Button show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.textView);
errorText = (TextView) findViewById(R.id.textView2);
show = (Button)findViewById(`enter code here`R.id.button);
show.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Task retrieveData = (Task) new Task().execute();
}
});
}
class Task extends AsyncTask<Void,Void,Void> {
String records = "",error = "";
/*final TextView textShow = findViewById(R.id.textView);
final TextView textShow2 = findViewById(R.id.textView2);
static final String JDBC_DRIVER = "com.MysqL.cj.jdbc.Driver";
//static final String DB_URL = "jdbc:MysqL://" + ConnectURL.DATABASE_URL + "/" + ConnectURL.DATABASE_NAME
@Override
protected void onPreExcute(){
String xmsg= "Connecting to database...";
textShow.setText(xmsg);
}*/
@Override
protected Void doInBackground(Void... voids) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.MysqL.cj.jdbc.Driver");
conn =DriverManager.getConnection("jdbc:MysqL://192.168.0.124:3306/android","andro","1234");
stmt = conn.createStatement();
**when i debug the emulator stop here and crashed**
ResultSet resultSet = statement.executeQuery("Select * FROM table_name");
while (rs.next()) {
records += rs.getString(1) + " " + rs.getString(2) + "\n";
}
} catch (Exception e) {
error = e.toString();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
text.setText(records);
if (error != "")
errorText.setText(error);
super.onPostExecute(aVoid);
}
}
}
这是我的activity_main.xml我觉得这里没什么问题
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="24sp"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Records"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView2"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
这里是我从 logcat 得到的
2021-04-28 15:01:32.162 5615-5660/de.vogella.MysqL.androidMysqL E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: de.vogella.MysqL.androidMysqL,PID: 5615
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:415)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/sqlType;
at com.MysqL.cj.jdbc.DatabaseMetaData.getInstance(DatabaseMetaData.java:765)
at com.MysqL.cj.jdbc.ConnectionImpl.getMetaData(ConnectionImpl.java:1175)
at com.MysqL.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
at com.MysqL.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.MysqL.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at java.sql.DriverManager.getConnection(DriverManager.java:580)
at java.sql.DriverManager.getConnection(DriverManager.java:218)
at de.vogella.MysqL.androidMysqL.MainActivity$Task.doInBackground(MainActivity.java:61)
at de.vogella.MysqL.androidMysqL.MainActivity$Task.doInBackground(MainActivity.java:40)
at android.os.AsyncTask$3.call(AsyncTask.java:394)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by: java.lang.classNotFoundException: Didn''t find class "java.sql.sqlType" on path: DexPathList[[zip file "/data/app/~~X8MIj6EwtZt9_UXjh82Wmg==/de.vogella.MysqL.androidMysqL--7dPP3pspout7aIGSh_6jg==/base.apk"],nativeLibraryDirectories=[/data/app/~~X8MIj6EwtZt9_UXjh82Wmg==/de.vogella.MysqL.androidMysqL--7dPP3pspout7aIGSh_6jg==/lib/x86,/system/lib,/system_ext/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
at java.lang.classLoader.loadClass(ClassLoader.java:379)
at java.lang.classLoader.loadClass(ClassLoader.java:312)
at com.MysqL.cj.jdbc.DatabaseMetaData.getInstance(DatabaseMetaData.java:765)
at com.MysqL.cj.jdbc.ConnectionImpl.getMetaData(ConnectionImpl.java:1175)
at com.MysqL.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444)
at com.MysqL.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246)
at com.MysqL.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
at java.sql.DriverManager.getConnection(DriverManager.java:580)
at java.sql.DriverManager.getConnection(DriverManager.java:218)
at de.vogella.MysqL.androidMysqL.MainActivity$Task.doInBackground(MainActivity.java:61)
at de.vogella.MysqL.androidMysqL.MainActivity$Task.doInBackground(MainActivity.java:40)
at android.os.AsyncTask$3.call(AsyncTask.java:394)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
2021-04-28 15:01:32.349 5615-5660/de.vogella.MysqL.androidMysqL I/Process: Sending signal. PID: 5615 SIG: 9
解决方法
显然你的代码没问题,问题在于你正在使用的驱动程序库“com.mysql.cj.jdbc.Driver”,你确定你已经正确定义了类路径,这也可能对你有帮助https://stackoverflow.com/a/59867655/9502601
Android – Ruby on Rails – MySQL
我已经开始研究一个Android应用程序,我们需要使用MysqL作为数据库,使用Ruby on Rails作为服务器端代码.我们也将在设备上使用sqlLite(将在需要时同步DB).我搜索了网络,找不到任何相关的教程/示例,可以作为开始的基础.
我已经完成了MysqL和ROR教程,但仍然对将Android与ROR连接起来感到困惑.
有人可以分享一些相关的教程/代码片段,可以解释技术的完整链接.我的意思是如何将数据从Android设备发送到MysqL,反之亦然.我从理论上了解这个概念,但不知道如何以及从哪里开始.
我真诚地对提出这样一个基本问题表示歉意,或者我听起来含糊不清,但我是初学者,需要完成这项任务.在预期中感谢..
解决方法:
以下是您应该了解的目标的简要概述.我不会那么详细,特别是因为我从未亲自使用过RoR.请注意,其中一些部分可能与RoR无关,但其背后的一般概念仍然适用.我将由您来研究并弄清楚如何实现每个单独的组件.
一切的一般流程如下:
Android应用< ==>网络< ==>网络服务< ==> MysqL的
请注意双刃箭头,因为数据将在两个方向上流动.
Android App是客户端,Web Service和MysqL数据库位于Web服务器上.我只包含了网络部分的完整性,但是一旦将数据发送到网络,您就不必做任何事情.
每个部分的简要概述:
Android应用:
Android App是从Web服务器发送和检索数据的客户端.我假设在您的应用程序中,您将允许用户执行某些任务,这些任务本质上会成为您希望在某个时刻发送到服务器的数据.
例如,用户应该能够输入他的名字和喜爱的动物.假设用户可能会点击一个实际的“提交”按钮.单击此“提交”按钮时,它应将数据包装成适当的格式以通过网络发送.其中两个最常见的是JSON和XML.一旦数据格式正确,您将需要使用某种类型的网络协议(如HTTP)将数据发送到服务器.为了发送数据,您当然必须有一些URL作为目标.让我们说目标是www.example.com/webservice.PHP.此目标是位于Web服务器上的Web服务.
一旦发送数据,服务器将回复一些数据,此时您可以随意执行任何操作.可能会将其显示给用户,或者将其粘贴到sqlite数据库中,甚至两者中.
要记住的关键是没有魔法.我刚刚描述的所有内容都将以Java代码实现,您将在某些时候在Android应用程序中编写.
关键想法你应该更多地研究并弄清楚如何在Java代码中实现:
> JSON和XML
> Java中的HTTP
> REST和SOAP
> Here是关于设置Android应用程序结构的可能方式的精彩视频.
>确保您在另一个线程上的Android应用程序中执行所有网络操作.一种易于使用的方法是Intent Service.
网络服务:
这通常是最令人困惑的部分. Web服务只是尝试访问Web服务器的客户端的一些入口点.在使用RoR时,我的解释可能略有不同,但同样的想法适用.请注意,目标网址为www.example.com/webservice.PHP. Web服务实际上是Web服务器上存在的PHP代码,称为webservice.PHP.在Android应用程序中,当您使用HTTP将数据发送到目标URL时,Web服务代码将在服务器上执行(并且还可以访问您发送给它的数据).在Web服务代码中,您基本上将提取数据(以某种格式,如JSON),获取必要的部分,然后使用它.在这种情况下,您很可能会查询数据库.在PHP中,编写连接和查询也在服务器上运行的MysqL数据库的代码很容易.当Web服务器检索到数据库的响应时,您可以将其发送回Android应用程序.和以前一样,请记住,没有任何魔法可言.所有这些想法都是通过编写一些代码来实现的.
研究的主要思路:
> Ruby on Rails Web服务
>如何使用Ruby on Rails访问MysqL数据库
MysqL数据库:
您可以在此处将数据存储在Web服务器上.我不打算深入研究这一点,因为这只是要求您在如何在Web服务器上设置MysqL数据库时进行大量阅读.学习如何创建适当的查询(如SELECT,INSERT等)也很重要.
研究的主要思路:
如何在Web服务器上设置MysqL数据库
如果您需要任何澄清,请告诉我们!
Android – 将SQLite与MySQL同步的最佳方式
我正在开发一个包含网络应用和移动应用程序的项目,该应用程序记录每日用户的数据.用户可以删除,更新他们的数据,他们可以使用许多设备插入数据.
我打算这样开发:
用户输入他们的数据然后插入sqlite.服务将定期启动(每5小时或每小时)以使用时间戳与MysqL同步.
我确实在互联网上使用服务和时间戳搜索了一个样本,但我一无所获.如果有样本或教程会很棒.
我是Android的新手,我不知道开发这样的应用程序的最佳方式是什么.提前致谢.
– – 编辑 – –
我考虑使用时间戳或同步.哪个更有效?
解决方法
jsonObjectRequest postForm = new JsonObjectRequest(Request.Method.POST,URL,YourjsonData,new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { // here you can get your response. },new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // here you can tell there is something went wrong. });
你可以添加一个新值,指示该值是否已同步或来自本地数据库.例如,假设您有一个名为student的表,并且当您的响应返回成功时,此表有三列ID,NAME并在上面的代码中同步更新行同步列为true | false,表示此行是否与您的后端同步或没有.要从数据库中获取数据,您应该执行以下操作.
public String getStudents() { List<Student> students = new ArrayList<Student>(); String query = "SELECT * FROM " + STUDENT+ "where synced=0"; sqliteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query,null); if (cursor.movetoFirst()) { do { Student st = new Student(); st.setId(cursor.getString(cursor.getColumnIndex(ID))); st.setName(cursor.getString(cursor.getColumnIndex(NAME))); st.setSynced(cursor.getInt(cursor.getColumnIndex(SYNCED))); students.add(st); } while (cursor.movetoNext()); } db.close(); return new Gson().toJson(students); }
今天关于android / mysql的评级算法和mysql等级的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android Studio – 使用依赖于另一个Android库的Android库构建Android项目、Android Studio 连接到 mysql 不断崩溃、Android – Ruby on Rails – MySQL、Android – 将SQLite与MySQL同步的最佳方式的相关知识,请在本站搜索。
本文标签: